首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在change()事件触发前取消选中复选框

如何在change()事件触发前取消选中复选框
EN

Stack Overflow用户
提问于 2012-02-25 21:53:33
回答 3查看 7.1K关注 0票数 1

我的表单中有很多输入字段,每次字段更改时,序列化的表单数据都会发送到服务器。

现在我需要阻止一些复选框被选中(不能使用"disabled"属性,单击这些复选框时必须触发alert() )。

我尝试了绑定到click()事件,但看起来change()事件在click()之前被触发,序列化的数据被发送,就像选中了复选框一样。

现在我尝试使用mousedown()事件,但prop('checked', false)似乎不起作用,实际上产生了相反的效果- checked总是处于选中状态。

这是JsFiddle测试用例- http://jsfiddle.net/F8x2X/19/

那么,如何在change()事件之前取消选中复选框?

EN

Stack Overflow用户

回答已采纳

发布于 2012-02-25 21:58:28

您可以将一个类放在不应选中的复选框上,并在change事件中进行选中

代码语言:javascript
复制
Foo: <input type="checkbox" name="foo" class='notcheck' value="1" /><br/>

<div id="result"></div>

$(':input').change(function(e){
    if($(this).hasClass('notcheck')){
       alert('you can\'t check this   !');
        $(this).removeProp('checked');
       return;

    }
    var data = $(':input').serialize();
    var checked = '';

    if ($(this).is(':checked')) {
        checked = 'Yes';
    } else {
        checked = 'No';
    }

    $('#result').append('Checked: ' + checked + '; Serialized: ' + data + '<br/>');
});

在这里拉小提琴http://jsfiddle.net/nicolapeluchetti/F8x2X/20/

票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9444557

复制
相关文章

相似问题

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