首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将Javascript点击函数应用于没有类的元素?

如何将Javascript点击函数应用于没有类的元素?
EN

Stack Overflow用户
提问于 2015-01-06 09:38:23
回答 3查看 49关注 0票数 0

目前我使用的是:

代码语言:javascript
运行
复制
$(':submit').click(function(event) {
    event.preventDefault(); //Stop the browser from submitting the form.
    $.ajax( {
        //Handle forms in ajax
    });
});

处理网站上的所有表单,因为95%的表单都是在ajax中处理的。这使我不必将其应用于类,然后又必须将该类添加到每个表单。

我现在的问题是,两个表单需要在没有ajax的情况下处理才能正常工作。那么,我如何在不对函数中的特定元素进行硬编码的情况下,将这个相同的函数应用于除2之外的所有具有特定类的提交输入?这有可能吗?有这种类型的负选择器吗?

我之所以选择这种方法,是因为大多数表单都使用ajax提交,所以请不要建议以类为目标,除非您确定别无选择。

EN

回答 3

Stack Overflow用户

发布于 2015-01-06 09:44:09

您可以在选择器中使用:not()

代码语言:javascript
运行
复制
$(':submit:not(.specialclass)').click(...)

你也可以把类放在下面的形式中:

代码语言:javascript
运行
复制
$('form:not(.specialclass)').submit(function(event) {
    ...
});
票数 1
EN

Stack Overflow用户

发布于 2015-01-06 09:42:12

代码语言:javascript
运行
复制
$(':submit:not([data-standard-sumbit])')...


<form>
    <button type="submit" data-standard-submit>Submit</button>   
</form>

但是,与提交按钮click事件相比,绑定到窗体submit事件通常更好。

因此:

代码语言:javascript
运行
复制
$('form:not([data-standard-submit])').submit(...)

<form data-standard-submit></form>
票数 0
EN

Stack Overflow用户

发布于 2015-01-06 09:44:48

如果它是您不想处理的元素上的一个特定类,您可以使用.not()从jQuery对象中删除它们:

代码语言:javascript
运行
复制
$(':submit').not(".yourClass").click(function(event) {
    event.preventDefault(); //Stop the browser from submitting the form.
    $.ajax( {
        //Handle forms in ajax
    });
});

如果您希望避免任何具有任何类名的表单对象,那么您可以这样做:

代码语言:javascript
运行
复制
$(':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
    });
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27790795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档