【发布时间】:2012-03-21 21:06:57
【问题描述】:
当我尝试捕获表单提交时,代码卡在了一个循环中。目的是在表单消失之前替换它的值。
$('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;
});
有人有什么想法吗?
更新:我最初将它绑定到按钮单击事件并且它正在工作,但我想保留提交按钮的 [enter] 键元素。看到代码有点不合逻辑,抓住按键会更好吗?
【问题讨论】:
-
那么...您通过 AJAX 发布表单,然后再次
.submit()吗?为什么要提交两次?只需删除第二个$('form').submit()。 -
@mblase75
e.preventDefault(); -
@mblase75 就在这里,不需要内部提交。您已将表单的提交事件绑定到其中的函数,因此第二次调用再次调用第一次,依此类推。
-
@Christoph 怎么样?这不会停止处理程序。
-
您要在提交之前还是之后更改表单值?因为您的代码通过 ajax 提交它,然后在成功回调中更改输入值。 之前这里你没有改变任何东西。
标签: jquery form-submit