Javascript 在以编程方式提交表单之前

Javascript 在以编程方式提交表单之前,javascript,jquery,jquery-mobile,Javascript,Jquery,Jquery Mobile,在jquerymobile中,我以编程方式提交表单,并希望捕获提交事件以在提交之前执行一些验证。我已经尝试了在关于jQuery的其他问题中提供的以下解决方案: $(document).ready(function(){ $('#my_form').bind('submit', function() { alert('before submit'); ... }); }); 但我无法执行该功能并显示警报。有人知道实现这一目标的其他方法吗 我的表格是这样的: <f

在jquerymobile中,我以编程方式提交表单,并希望捕获提交事件以在提交之前执行一些验证。我已经尝试了在关于jQuery的其他问题中提供的以下解决方案:

$(document).ready(function(){
  $('#my_form').bind('submit', function() {
    alert('before submit');

    ...

  });
});
但我无法执行该功能并显示警报。有人知道实现这一目标的其他方法吗

我的表格是这样的:

<form id="my_form" method="POST" action="..." data-theme="b">

我从同一页面的另一部分以编程方式调用它的方式如下:

<input type="submit" onclick="document.forms['my_form'].submit(); return false;" value="Submit" data-theme="b"/>

提前感谢您的帮助。

请参考这些链接


由于您使用jquery,您可以在这里找到方法和示例:


将onClick的返回值更改为TRUE会执行以下操作:

<input type="submit" onclick="document.forms['my_form'].submit(); return ***true***;" vakue="Submit" data-theme="b"/>

以编程方式提交表单时,不会执行表单的提交处理程序

注意:不要使用提交按钮以编程方式提交表单。而是使用按钮或允许处理来自提交按钮的提交,即

(上述内容无论如何都不正确,因为它需要表单有名称,而不仅仅是ID)

所以

或者因为您有jQuery:

或者,如果您可以将按钮置于表单中(最佳方式):

但是,既然您想绑定,下面介绍如何使用另一个按钮提交,而不是使用表单自己的提交按钮:

<form id="actualForm">...
.
.

</form>


<input type="button" id="subbut" value="Submit another form on this page" data-theme="b"/>

$(document).ready(function(){
  $('#subbut').bind('click', function() {
    alert('before submit');

    ...

    $("#actualForm").submit();
  });
});

你在
中拼写了value vakue,这只是一个拼写错误吗?是的,这只是一个拼写错误。在我的原始代码中,它是正确的,表单是正确提交的。对我来说,它仍然忽略了函数。错误的表单-从自己的提交按钮或submita以编程方式提交表单是非常糟糕的做法@mplungjan正确指出,这样做是不好的做法。您可以将其设置为type=“button”,并使用onClick功能在脚本中调用函数,在该函数中您可以执行表单提交。问题是,我不希望在可能的情况下添加额外的文件,因为它是一个移动应用程序。不会有大量的验证来证明它的合理性。我以前已经尝试过使用
$(“#我的表单”).submit(function(){…})$(document).ready(function(){
  $('#subbut').attr('onclick',""); // or $('#subbut').onclick=null;
  $('#subbut').bind('click', function() {
    alert('before submit');

    ...

    $("#actualForm").submit();
  });
});