Javascript 在以编程方式提交表单之前
在jquerymobile中,我以编程方式提交表单,并希望捕获提交事件以在提交之前执行一些验证。我已经尝试了在关于jQuery的其他问题中提供的以下解决方案:Javascript 在以编程方式提交表单之前,javascript,jquery,jquery-mobile,Javascript,Jquery,Jquery Mobile,在jquerymobile中,我以编程方式提交表单,并希望捕获提交事件以在提交之前执行一些验证。我已经尝试了在关于jQuery的其他问题中提供的以下解决方案: $(document).ready(function(){ $('#my_form').bind('submit', function() { alert('before submit'); ... }); }); 但我无法执行该功能并显示警报。有人知道实现这一目标的其他方法吗 我的表格是这样的: <f
$(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(){…})但是它不起作用。你说它不起作用是什么意思?如果在匿名函数中返回false,则不会提交表单。如果返回true,则意味着匿名函数甚至没有使用该代码执行。好的,我的意思是,您必须使用onclick=“beforesmit()”属性,并定义一个验证函数,即beforesmit(),并且该函数内部应该会发生魔法(然后它就会工作)。否则,您将无法阻止提交的发生(您只能“侦听”它)。好的,这与@mplungjan提供的解决方案类似,并且它工作正常。你知道有什么方法可以避免修改提交代码而只听它吗?我也想问你,你知道不必修改提交代码的另一种方法吗?难道没有其他方法只能“捕获”提交事件或类似事件吗?谢谢,视情况而定。如果提交代码是错误的,那么你必须替换代码-请参阅更新如果它对你有效,请阅读没有评论就否决该文件的人误解了投票存在的原因。毫无理由的完全无用的行动
$(document).ready(function(){
$('#subbut').attr('onclick',""); // or $('#subbut').onclick=null;
$('#subbut').bind('click', function() {
alert('before submit');
...
$("#actualForm").submit();
});
});