【发布时间】:2013-12-17 10:42:08
【问题描述】:
当发生某些事情(来自服务器的响应或由于外部条件而无法继续)时,我想使整个表单无效(不仅仅是特定字段)。
我的示例是用户在等待来自服务器的 AJAX 响应时不应该能够提交表单。所有后续字段都被禁用,直到 AJAX 回来,所以表单是有效的,允许用户提交它。
<form action="" method="post">
<select name="input1" required="required">
<option value="A">A</option>
<option value="B">B</option>
</select>
<select name="input2" id="input2" disabled="disabled" required="required">
<option value=""></option>
<option value="foo">Foo</option>
</select>
<input type="submit" value="Submit" />
</form>
<p></p>
<p>Fake response from server
<button id="response">Fake</button>
</p>
JS:
var waitingForServer;
waitingForServer = true;
$('form').validate();
$('#response').on('click', function() {
waitingForServer = false;
return $('#input2').prop('disabled', false);
});
如何防止用户在 AJAX 请求完成之前提交表单?
【问题讨论】:
标签: jquery forms jquery-validate