Javascript jQuery submit()-表单仍在发送
我有这个Javascript jQuery submit()-表单仍在发送,javascript,jquery,submit,Javascript,Jquery,Submit,我有这个 $("#formNewsletter").submit(function(){ return false; }) 它按预期工作-表单未提交。 当我写这篇文章时,它似乎返回了true(表单正在发送) 我想了解为什么会发生这种情况,以及我如何才能让它发挥作用 谢谢大家! $("#formNewsletter").submit(function(e) { if ($(&q
$("#formNewsletter").submit(function(){
return false;
})
它按预期工作-表单未提交。
当我写这篇文章时,它似乎返回了true(表单正在发送)
我想了解为什么会发生这种情况,以及我如何才能让它发挥作用
谢谢大家!
$("#formNewsletter").submit(function(e) {
if ($("#newsletterSelSpec div").length > 0) {
alert("Good");
} else {
e.preventDefault(); // prevent the form submission
alert("Please add at least one speciality!");
}
});
注 您正在使用
.length()
,但它应该仅为.length
,这意味着
$("#newsletterSelSpec div").length
属性长度不是一个方法 使用
$(“#简讯selspec div”)。长度>0
您可以使用
preventDefault()
witch作为第一个参数中的方法来防止事件的默认行为。(事件
)
不确定,但问题可能是警报会停止脚本过程,而不是提交事件。始终使用
preventDefault()
停止默认操作行为,正如下面的例子-返回false
应该避免,除非绝对必要/理解-也要查找stopPropagation
和stoppimediatepropagation
!属性长度不是一个方法。使用$(“#newsletteselspec div”).length>0
@AndreasAL将此作为答案,因为这几乎肯定是这不起作用的原因。@coderadu没有提到任何关于提交表单的内容,但阻止表单提交。是的,问题是我使用的“方法”。。实际上,我们的想法是,永远不要发送表单,而是执行ajax调用。谢谢你,安德烈亚斯·艾尔!从问题代码中的return false
的位置判断,表单永远不应该提交,因此只在else
块中调用e.preventDefault()
将改变功能。@AnthonyGrist:是的,但我怀疑它是在绝望中移动到那里的。@T.J.Crowder可能。如果没有Radu告诉我们,我们无法知道任何一种情况。我仍然认为,当您的答案与问题中提供的代码的预期功能不完全匹配时,明确说明这一点是一个好主意。
$("#newsletterSelSpec div").length
$("#formNewsletter").submit(function(event) {
event.preventDefault();
if($("#newsletterSelSpec div").length() > 0)
{
alert("Good");
}
else
{
alert("Please add at least one speciality!");
}
});