当我试图捕获表单提交时,代码陷入了循环。其目的是在表单的值传出之前替换该值。
$('form').submit(function(e){
e.preventDefault();
$.ajax({
type: "POST",
url: 'convert.asp',
data: $('form').serialize(),
success: function(response){
$('input[name="field1"]').val(response);
$('form').submit();
}
});
return false;
});
有人有什么想法吗?
更新:我最初将它绑定到一个按钮点击事件,它正在工作,但我想保留submit按钮的[enter]键元素。既然代码有点不合逻辑,那么按下键盘是个更好的主意吗?
我认为您的ajax是在表单最终提交之前对其进行验证的尝试。在这种情况下,只需在提交表单之前解除验证功能的绑定
success: function(response){
$('input[name="field1"]').val(response);
// Add unbind to remove validations
$('form').unbind().submit();
}
如果成功,您将触发另一个提交。。。
$('form').submit(function(e){
e.preventDefault(); // redundant, you return false in the end. <<<===
$.ajax({
type: "POST",
url: 'convert.asp',
data: $('form').serialize(),
success: function(response){
$('input[name="field1"]').val(response);
$('form').submit(); // <=== delete this! <<<<=================
}
});
return false;
});
您提交表单,阻止提交只是为了提交表单,而阻止提交…:-D