复选框点击事件未触发

时间:2011-07-17 17:55:43

标签: jquery

我得到了这个js(也试过“改变”,结果相同)

$("input[class='tag-checkbox']").live("click",function(){
    var thisCheck = $(this);
    if (thischeck.is (':checked')){
        var tag = $(this).val();
        $("#tag-field").val(tag);
        return false;
    }
});

应该设置此复选框的值

<input class="tag-checkbox" type="checkbox" name="tag[]" value="' . $value['name'] . '" />

进入此文本域

<input id="tag-field" type="text" name="product-tag" />

但事件未被触发且文本字段未更改。我没有错误消息,所以脚本有问题吗?

4 个答案:

答案 0 :(得分:0)

$("input.tag-checkbox").change(function() {

    if ($(this).is(':checked')) {
        var tag = $(this).val();
        $('#tag-field').val(tag);
        return false;
    }

});

答案 1 :(得分:0)

尝试直接使用$(this)

$("input[class='tag-checkbox']").live("click",function(){

    if ($(this).is (':checked')){
        var tag = $(this).val();
        $("#tag-field").val(tag);
        return false;
    }
});

工作示例:http://jsfiddle.net/hZVwE/

无论如何,你的脚本中的问题是你在thisCheck上输了一个错误(一旦C是大写然后不是)

答案 2 :(得分:0)

if语句中的变量拼写错误。它应该是“thisCheck”,但你有“thischeck”(没有资本C)。一旦你改变它,它就会起作用。

答案 3 :(得分:0)

你有两个案例来命名thisCheck

更正后的代码

 $("input[class='tag-checkbox']").live("click",function(){
        var thisCheck = $(this);
        if (thisCheck.is (':checked')){
            var tag = $(this).val();
            $("#tag-field").val(tag);
            return false;
        }

});

演示 http://jsfiddle.net/M2xUH/4/

一些建议。

代替使用input[class='tag-checkbox'],您可以直接使用jquery类选择器。如

input.tag-checkbox

为什么你真的需要thisCheck,你可以直接使用this