JQuery.ajax 한 후 전체 양식을 제출, 아약스를 통해 "내부 형태"를 검증하기위한 HTML :
이 문제를 해결하기 위해, 나는 다음과 같이 두 개의 분리 된 형태를 사용하는 것이 좋습니다. 두 경우 모두 ajax를 사용하여 controller.php 파일의 목적과 제출 ID를 표시합니다. 또한 Jquery 선택기로 ID 대신 클래스를 사용하여 여러 개의 분리 된 섹션으로 구성된 내부 양식을 가질 수 있습니다.
<form>
<input />
<textarea />
<select /> <!-- etc. -->
<section id="verify">
<input />
<textarea />
<select /> <!-- etc -->
<button type="button">submit</button>
<!-- eg. sub-submission verifies data in section -->
</section>
<select />
<input />
<input type="submit" value="submit" />
</form>
<script>
$(document).ready(function() {
$("#verify button").on ('click', verify);
$('form').submit (formSend);
function verify(){
// get input data within section only (ie. within inner form)
var postData = $('#verify').filter(':input').serializeArray();
postData.push ({name:"submitId", value:'verify'});
var request = $.ajax ({
type: "POST",
url: "controller.php",
data: postData,
error: function (xhr, status, message){
alert (status);
}
});
}
function formSend(){
// get input data within entire form
var postData = $(this).serializeArray();
postData.push ({name:"submitId", value:'send'});
var request = $.ajax ({
type: "POST",
url: "controller.php",
data: postData,
error: function (xhr, status, message){
alert (status);
}
});
}
});
</script>
"양식 내에 다른 양식이 있습니다."이 작업을 수행하지 마십시오. HTML의 중첩 된 양식이 작동하지 않습니다. 나는 * 매우 * 다른 '
그래, 양식 안에 양식을 넣는 것은 무효합니다. 나의 나쁜 경험이 나에게 올바르게 작용한다면 크롬은 그것을 완전히 거부 할 것입니다! 왜냐하면 당신은 자바 스크립트를 사용하고 있기 때문에, "폼 안에 폼"이 필요하지 않습니다. :) – Luke
왜 두 개의 폼을 사용하지 않는 것이 좋을까요? –