【问题标题】:Checkbox is always checked whatever I choose无论我选择什么,复选框都会被选中
【发布时间】:2016-10-27 07:03:16
【问题描述】:

您好,我正在构建一个带有 1 个复选框的表单。表单字段的其余部分工作正常,但无论复选框是否被选中,该值始终为“on”。

我的代码:

<input  id="checkbox_<?=$row['csid'];?>" type="checkbox" <?php if($row['feedbackVisible'] == 'yes') { echo "checked='true'";}?> >

以及我如何使用 jQuery 获得价值:

var review_visible_website = $('#checkbox_'+ modalId).val();

复选框开始被选中,但如果我取消选中它,它仍然会给我“打开”的值。我做错了什么?

【问题讨论】:

  • 你能看到它被选中了吗?
  • 我可以将其视为检查,但是当我取消选中它时,它仍然会给我带来价值
  • 是什么赋予了您 on 的价值?

标签: javascript jquery checkbox


【解决方案1】:

这里有几种使用 JQuery 测试复选框的方法

// First method - Recommended
$('#checkbox').prop('checked')  // Boolean true

// Second method - Makes code more readable (e.g. in if statements)
$('#checkbox').is(':checked')  // Boolean true

// Third method - Selecting the checkbox & filtering by :checked selector
$('#checkbox:checked').length  // Integer >0
$('#checkbox:checked').size()  // .size() can be used instead of .length

// Fourth method - Getting DOM object reference
$('#checkbox').get(0).checked  // Boolean true
$('#checkbox')[0].checked      // Boolean true (same as above)

【讨论】:

  • 第一种方法最好!我的问题是我正在使用.val 检查值,所以它始终是值,无论是否检查。谢谢查理!
【解决方案2】:

另一种使用 javascript 的方式,您可以这样做:

    if( document.getElementById('checkbox').checked == true ){
        // checked
    }
    else{
        // not checked
    }

【讨论】:

    猜你喜欢
    • 2013-12-25
    • 1970-01-01
    • 2016-07-20
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 2014-08-10
    • 1970-01-01
    • 2012-02-08
    相关资源
    最近更新 更多