我需要一种仅当 foo 返回 true 时才提交表单的方法。我试过这段代码,但即使 foo 返回 false,它也会提交表单。
<input type="submit" value="submit" onclick="return foo();" />
<script type="text/javascript">
function foo() {
// if... return true
// else return false
}
</script>
如果我使用 onsubmit 函数,那么它会先提交。所以这对我来说不好。
最佳答案
您可以尝试使用 jquery ajax 提交的替代方法,如下所示,我正在使用,可能对您也有帮助..
var request;
$("#YourFormId").submit(function(event){
if(yourFunction()==false) {
return false;
}
if (request) {
request.abort();
}
var $form = $(this);
var $inputs = $form.find("input, select, button, textarea");
var serializedData = $form.serialize();
$inputs.prop("disabled", true);
request = $.ajax({
url: "yourFormActionPage.php",
type: "post",
data: serializedData
});
request.done(function (response, textStatus, jqXHR){
//ok
});
request.fail(function (jqXHR, textStatus, errorThrown){
//track it
});
request.always(function () {
$inputs.prop("disabled", false);
});
event.preventDefault();
});
关于javascript - 仅当函数返回 true 时才提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31623253/