我认为 HTML 规范规定单击表单中的按钮会传递它们的值,而“未单击”按钮没有被传递。像复选框...我总是检查按钮值,有时我会根据用于提交的按钮进行不同的处理..
我已经开始使用 AJAX(特别是 jquery)来提交我的表单数据 - 但按钮数据从未传递过 - 有什么我遗漏的吗?我能做些什么来传递这些数据吗?
简单的代码可能看起来像这样
<form id="frmPost" method="post" action="page.php" class="bbForm" >
<input type="text" name="heading" id="heading" />
<input type="submit" name="btnA" value="Process It!" />
<input type="submit" name="btnB" value="Re-rout it somewhere Else!" />
</form>
<script>
$( function() { //once the doc has loaded
//handle the forms
$( '.bbForm' ).live( 'submit', function() { // catch the form's submit event
$.ajax({ // create an AJAX call...
data: $( this ).serialize(), // get the form data
type: $( this ).attr( 'method' ), // GET or POST
url: $( this ).attr( 'action' ), // the file to call
success: function( response ) { // on success..
$('#ui-tabs-1').html( response );
}
});
return false; // cancel original event to prevent form submitting
});
});
</script>
在处理页面上 - 仅出现“标题”字段,无论单击哪个 btnA 或 btnB 都不会出现......
如果不能“修复”,有人可以解释为什么 Ajax 调用不遵循“标准”表单行为吗?
谢谢