【问题标题】:Uncheck value for checkbox in jquery (with ajax and php)取消选中 jquery 中复选框的值(使用 ajax 和 php)
【发布时间】:2011-12-06 14:53:47
【问题描述】:

我有一个可编辑的 ajax 表,并且有一个“解锁”字段,每行都有一个复选框。

当我检查复选框时,我需要获取值 1(这部分我没问题!:)

我获取复选框值的代码:

($("#unlock_input_" + ID).val();))

但是当我取消选中任何一个复选框时,我需要获取值 0(我需要这部分的帮助)

所以....我怎样才能在 jquery 中做到这一点?谢谢

【问题讨论】:

    标签: php jquery checkbox


    【解决方案1】:

    您可以使用:checked 选择器。然后你会在未选中该框时返回undefined,这是错误的,所以:

    var result = $("#unlock_input_" + ID + ":checked").val() || 0;
    

    result 如果选中则以复选框的值结束,如果不选中则以 0 结束,因为 JavaScript's curiously-powerful || operator 的工作方式。

    Live example

    另一种写法:

    var result = $("#unlock_input_" + ID).filter(":checked").val() || 0;
    

    当然,更直接的:

    var cb = $("#unlock_input_" + ID)[0],
        result = cb.checked ? cb.value : 0;
    

    【讨论】:

    • @user1029834:我最初的回答有错误,我现在已经修复了(我没有使用:checked 选择器)。
    • 很像这种短暂的......我可能会沿着? :路线走:)
    • @CD001:有利也有弊。使用:checked 肯定会比我上面的最后一个替代方案表现得更差,但是当然,除非你处于一个紧密的循环中,否则没关系。所以这是课程的马... :-) (我在 my 项目中所做的是使用我添加的名为checkedVal 的扩展方法,如果使用有效方法检查或返回@,则返回值987654335@ 如果未选中。)
    【解决方案2】:

    将您的代码更改为此(使用prop 要求检查属性):

    var result = $("#unlock_input_" + ID).prop('checked')?1:0;
    

    编辑:
    如果您明确需要该值而不是 1,请执行以下操作:

    var element = $("#unlock_input_" + ID);
    var result = element.prop('checked')?element.val():0;
    

    【讨论】:

      【解决方案3】:

      你可以使用复选框的checked属性来决定是1还是0。试试这个

      if($("#unlock_input_" + ID)[0].checked){
          alert("1");
      }
      else{
          alert("0");
      }
      

      您可以使用jQuery is 方法来检查复选框是否被选中。

      if($("#unlock_input_" + ID).is(":checked")){
          alert("1");
      }
      else{
          alert("0");
      }
      

      【讨论】:

      • .is(":checked") shudder ;-) 如果你要分支,我肯定会分支你的第一种方式,除非复选框可能不存在。
      【解决方案4】:

      你可以检查它是否被检查

      if($("#unlock_input_" + ID).is(':checked')){
          myVal = "1";
      }
      else{
          myVal = "0";
      }
      

      【讨论】:

        猜你喜欢
        • 2014-11-30
        • 2013-08-04
        • 1970-01-01
        • 2017-04-22
        • 2011-08-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多