表格:
<form action="" method="post" id="save-chart-form">
// Some fields, none named "submit"
<input id="saveChartButton" name="commit" class="default-button-jsd disablebutton" type="submit" value="Save">
</form>
Jquery的:
$( function() {
$( "#save-chart-form" ).submit( function( event ) {
event.preventDefault()
$( "#saveChartButton" ).val( "Please be patient, it might take a while to prepare your chart" );
$( "#save-chart-form" ).submit() // THIS won't work
} );
} );
$(“#save-chart-form”)。isubmit()应该提交表单,但它什么都不做。您可以注意到我已经将表单提交按钮重命名为“提交”以外的其他内容,这是此问题的传统修复方法。 使用jquery 3.1.1。
罪魁祸首是什么?
编辑:将jquery调用更改为
$("#save-chart-form").click(function (event) {....
无法解决问题
答案 0 :(得分:1)
如果打开控制台(firefox,请按f12),可能会出现错误:递归过多。如果您在表单上放置回调,则会阻止在某些内容不正确时提交。所以回调应该返回一个布尔值:
$( function() {
$( "#save-chart-form" ).submit( function( event ) {
$( "#saveChartButton" ).val( "Please be patient, it might take a while to prepare your chart" );
if(valid){
return true; // this will submit
} else {
return false; // this will prevent the submit
}
} );
} );
所以删除event.preventDefault()。这将禁用任何提交可能性并将其替换为返回
答案 1 :(得分:0)
我会将输入的类型从submit
更改为button
并添加一个onclick事件属性,该属性将填充按钮的值并提交表单。
考虑到您的代码,标签只会显示为0.001秒,如果我是正确的,提交将立即进行。