0

这是我 的 JSFiddle

我试图在单击复选框时添加一个类,尽管我似乎无法弄清楚如何以适合我已经拥有的代码的方式进行操作。

代码:

  $(this).live("change keyup", function () {

  var checkbox = $('#termscons').prop(':checked');

  if (currid == "termcons") {

                if (checkbox == 'checked') {
                    infobox.html("Accepted!");
                    infobox.addClass('good');
                } else if (checkbox !== 'checked') {
                    infobox.html(replacehtml);
                    infobox.removeClass('good');
                }
            }  

         if ($('#termscons').next().hasClass('good')) {

            $("#sendbtn").css("display", "block");
        } else {
            $("#sendbtn").css("display", "none");

        }
4

3 回答 3

4

首先,不要使用live,它已被弃用,而是使用on,例如

$(document).on('change', '#termscons', function(){
    if($(this).is(':checked')) {
        // checked, so you can add class, i.e.
        infobox.addClass('good');
        // other code
    }
    else {
        // not checked
        infobox.removeClass('good');
        // other code
    }
});

这也回答了如何class根据checkbox' 状态添加/删除 a 。

演示。

于 2013-07-28T01:44:12.330 回答
0

您正在做的是尝试访问:checked应该是checked 我从网站 http://jquery-howto.blogspot.com/2008/12/how-to-check-if-checkbox-is-checked 复制的道具。 html

  // First way
    $('#checkBox').attr('checked');
    // If using jQuery 1.6 or up use .prop() instead
    // Learn the difference between property and an attribute
    $('#checkBox').prop('checked');

    // Second way 
    $('#edit-checkbox-id').is(':checked'); 

    // Third way for jQuery 1.2
    $("input[@type=checkbox][@checked]").each( 
        function() { 
           // Insert code here 
        } 
    );
    // Third way == UPDATE jQuery 1.3
    $("input[type=checkbox][checked]").each( 
        function() { 
           // Insert code here 
        } 
    );

    // In his comment Andy mentions that the 3rd method
    // does not work in Firefox 3.5.2 & jQuery 1.3.2

我希望这可以帮助:)

于 2013-07-28T01:44:28.733 回答
0

你有几个问题。工作jsfiddle

  1. 您绑定到所有文本框的焦点事件,然后在处理程序中尝试绑定到当前文本框的更改事件,期望您的复选框是文本框之一。)
  2. 您绑定到复选框的错误事件。使用click.
  3. 您对 prop(":checked") 的检查是错误的。改为使用is

      $("#termscons").click(function(){
                var infobox = $(this).next();
                var checkbox = $(this).is(':checked');
    
                // we use this logic to check the subject
                if (checkbox) {
                    infobox.html("Accepted!");
                    infobox.addClass('good');
                } else {
                    infobox.html("");
                    infobox.removeClass('good');
                }
    });
    
于 2013-07-28T01:50:49.897 回答