제출 단추를 누른 기준으로 상위 양식을 선택하려면 어떻게 해야 합니까?
저는 세 가지 양식이 있는 웹 페이지를 가지고 있습니다.중첩되지 않고 하나씩 반복됩니다. 거의 동일하며 숨겨진 변수 하나만 다를 뿐입니다.사용자는 하나의 양식만 입력하고 JS 스크립트 하나로 모든 양식의 유효성을 검사/등화하려고 합니다.
그렇다면 사용자가 양식 #1의 제출 버튼을 클릭할 때 어떻게 내 js 스크립트가 양식 1의 필드만 다루도록 합니까?그것이 $(이것)와 관련이 있다고 생각합니다.부모님, 하지만 저는 그것으로 무엇을 해야 할지 모르겠습니다.
검증 스크립트(다른 곳에서 사용한 단일 양식만 있음)는 다음과 같습니다.
$(document).ready(function(){
$("#submit").click(function(){
$(".error").hide();
var hasError = false;
var nameVal = $("#name").val();
if(nameVal == '') {
$("#name").after('Please enter your name.');
hasError = true;
}
if(hasError == false) {blah blah do all the processing stuff}
그래서 $("#name").val()과 같은 것을 $(이것)로 대체해야 합니까?parents('form').name.val()? 아니면 이것에 대해 더 좋은 방법이 있습니까?
감사합니다!
다음과 같이 양식을 선택할 수 있습니다.
$("#submit").click(function(){
var form = $(this).parents('form:first');
...
});
그러나 다음 필드 중 하나에서 Enter 키를 눌러 제출할 때도 트리거되므로 일반적으로 이벤트를 양식 자체의 제출 이벤트에 첨부하는 것이 좋습니다.
$('form#myform1').submit(function(e){
e.preventDefault(); //Prevent the normal submission action
var form = this;
// ... Handle form submission
});
양식 내부의 필드를 선택하려면 양식 컨텍스트를 사용합니다.예:
$("input[name='somename']",form).val();
저는 입력 요소의 형태를 찾는 방법을 검색할 때 이 답을 발견했습니다.이제 다음을 사용하는 것보다 더 나은 방법이 있기 때문에 참고 사항을 추가하려고 합니다.
var form = $(this).parents('form:first');
언제 jQuery에 추가되었는지는 모르겠지만, 가장 가까운() 방법은 부모()를 사용하는 것보다 더 깨끗하게 수행합니다.코드가 가장 가까울수록 다음으로 변경될 수 있습니다.
var form = $(this).closest('form');
위로 이동하여 찾고 있는 것과 일치하는 첫 번째 요소를 찾고 거기서 중지하므로 :first를 지정할 필요가 없습니다.
제출물이 안에 있다는 양식을 받으려면 왜 그냥.
this.form
가장 쉽고 빠르게 결과를 얻을 수 있습니다.
나는 다음 방법을 사용했고 그것은 나에게 잘 작동했습니다.
$('#mybutton').click(function(){
clearForm($('#mybutton').closest("form"));
});
$('#mybutton').closest("form")
저를 위해 그 묘기를 부렸습니다.
아일린: 아니, 그렇지 않습니다.var nameVal = form.inputname.val();
둘 중 하나일 겁니다
jQuery에서:
// you can use IDs (easier)
var nameVal = $(form).find('#id').val();
// or use the [name=Fieldname] to search for the field
var nameVal = $(form).find('[name=Fieldname]').val();
또는 JavaScript에서:
var nameVal = this.form.FieldName.value;
또는 조합:
var nameVal = $(this.form.FieldName).val();
jQuery를 사용하면 다음과 같은 형식의 모든 입력을 반복할 수도 있습니다.
$(form).find('input, select, textarea').each(function(){
var name = this.name;
// OR
var name = $(this).attr('name');
var value = this.value;
// OR
var value = $(this).val();
....
});
언급URL : https://stackoverflow.com/questions/311579/how-do-i-select-the-parent-form-based-on-which-submit-button-is-clicked
'itsource' 카테고리의 다른 글
유동적인 웹사이트는 더 이상 만들 가치가 있습니까? (0) | 2023.08.30 |
---|---|
JavaScript URL 디코드 기능 (0) | 2023.08.30 |
npm build는 build라는 이름의 스크립트를 패키지에서 실행하지 않습니다.제이손 (0) | 2023.08.25 |
CMake / G++ / LD가 다른 공유 객체에 대해 공유 객체를 연결하도록 강제하는 방법 (0) | 2023.08.25 |
단말기에서 잘못된 사용자와 git 푸시 (0) | 2023.08.25 |