目前我使用的是:
$(':submit').click(function(event) {
event.preventDefault(); //Stop the browser from submitting the form.
$.ajax( {
//Handle forms in ajax
});
});
处理网站上的所有表单,因为95%的表单都是在ajax中处理的。这使我不必将其应用于类,然后又必须将该类添加到每个表单。
我现在的问题是,两个表单需要在没有ajax的情况下处理才能正常工作。那么,我如何在不对函数中的特定元素进行硬编码的情况下,将这个相同的函数应用于除2之外的所有具有特定类的提交输入?这有可能吗?有这种类型的负选择器吗?
我之所以选择这种方法,是因为大多数表单都使用ajax提交,所以请不要建议以类为目标,除非您确定别无选择。
发布于 2015-01-06 09:44:09
您可以在选择器中使用:not()
:
$(':submit:not(.specialclass)').click(...)
你也可以把类放在下面的形式中:
$('form:not(.specialclass)').submit(function(event) {
...
});
发布于 2015-01-06 09:42:12
$(':submit:not([data-standard-sumbit])')...
<form>
<button type="submit" data-standard-submit>Submit</button>
</form>
但是,与提交按钮click
事件相比,绑定到窗体submit
事件通常更好。
因此:
$('form:not([data-standard-submit])').submit(...)
<form data-standard-submit></form>
发布于 2015-01-06 09:44:48
如果它是您不想处理的元素上的一个特定类,您可以使用.not()
从jQuery对象中删除它们:
$(':submit').not(".yourClass").click(function(event) {
event.preventDefault(); //Stop the browser from submitting the form.
$.ajax( {
//Handle forms in ajax
});
});
如果您希望避免任何具有任何类名的表单对象,那么您可以这样做:
$(':submit').click(function(event) {
if (this.className) {
return; // do nothing and let default action happen if there's a class name
}
event.preventDefault(); //Stop the browser from submitting the form.
$.ajax( {
//Handle forms in ajax
});
});
https://stackoverflow.com/questions/27790795
复制相似问题