jQuery提交function无法正常工作

我对jQuery提交function有一些疑问。

这是工作环境

jQuery:1.7.2,chrome(18.0.1025.168 m)。

有两个问题。

第一名:

我的代码是这样的

HTML

jQuery的

 $('#test').submit(function(){ return false; }) 

问题是它在firefox和opera中工作得很好但是chrome。

2ST:

html:如上所述。

jQuery的:

 $('#test').submit(function(){ if(...) alert(something..); return false; }) 

它不适用于firefox,opera和chrome。 它总是触发form.submit为什么。

我很困惑。 谁能搞清楚谢谢!

不要使用return false; 。 试试这个:

 $('#test').submit(function(event){ event.preventDefault(); }); 

更换:

 $('#test').submit(function(){ return false; }); 

有:

 $('form#test').submit(function(event){ event.preventDefault(); }); 

如果您只是不想提交页面,则可以简单使用

onsubmit="return false"或者如果您希望条件提交也可以使用您拥有的代码。

我没有看到任何问题

DEMO

码:

 $('#test').submit(function(event) { if(jQuery('#textbox').val() == '') { alert('Not submitting'); //event.preventDefault(); Not necessary but better return false; } }) 

这有时是JS库或自定义代码与提交处理程序的行为冲突的结果(例如,有另一个提交处理程序明确提交表单)。

理想的解决方案是调试并找到冲突的代码并解决它。

但作为一种解决方法,可以改为使用提交按钮上的单击处理程序,而不是表单上的提交处理程序。

人们可以这样做:

   

然后在代码中你可以做

 $('#btnSubmit').click(function(){ //Actually we can do 'input[type="submit"]' return false; }) 

但是如果表单允许通过点击“输入”提交,则必须要小心,因为在这种情况下,单击处理程序的调用可能取决于浏览器和/或基于正在使用的库,请参阅onsubmit =中的注释return false“对Dirk Paessler的答案提供更多信息, 对Internet Explorer 7/8(表单仍然提交)没有影响 。

但是为了与浏览器无关,也可以按下“enter”键按下按钮,如下面的代码所示:

 document.onkeypress = function(evt) { var evt = (evt) ? evt : ((event) ? event : null); var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null); if ((evt.keyCode == 13) && (node.type == "text")) { /*return true or false here based on your logic*/; } } 

然而,人们也可以尝试这个线程中的其他建议,比如直接调用e.preventDefault(),虽然这是Jquery在幕后实际做的,但仍然可能是你的冲突代码很好用它