无法获得正确的复选框值

时间:2014-12-30 17:43:40

标签: jquery jsp

我的jsp中的复选框定义为:

<td class="text">
  <html:checkbox styleClass="onGoing" property="user.onGoing" onclick="hideInfo();" />    
    On Going
</td>

在我的js文件中:

function hideInfo() {
    if ($("[name='user.onGoing']").is(':checked')) 
    {
        alert('checked');
    }
    else 
    {
        alert('unchecked');
    }
}

但它始终显示/输入为已选中。

我甚至尝试过测试

if ($('user.onGoing').is(':checked')) { 
 .. .. .
}

但这不起作用。当我使用开发人员工具时,它几乎就像dom没有更新一样。如何获取复选框的正确值?

3 个答案:

答案 0 :(得分:2)

请务必避免使用内联JS并使用change事件代替click

<td class="text">
  <html:checkbox styleClass="onGoing" property="user.onGoing" />    
    On Going
</td>

和JS:

$(':checkbox.onGoing').on('change', function() {
    if( this.checked ) {
        alert('checked');
    } else {
        alert('unchecked');
    }
});

答案 1 :(得分:0)

如果使用jquery

,请使用以下代码段获取复选框的值
 <html:checkbox styleClass="onGoing" property="user.onGoing" onclick="hideInfo(this)" /> 

 $("#check-demo").click(function(){
     if($(this).is(":checked")) {

       console.log($(this).val());     
     } else {
        console.log("false value");
     }
});

或者如果您想使用纯JavaScript,请使用以下代码

function hideInfo(element){
   console.log(element.value);
}

答案 2 :(得分:0)

这似乎对我有用

<input  type="checkbox" onclick="isChkChecked(this);"/>

        function isChkChecked(elm) {
        console.log($(elm).is(':checked'));
        }