onchange事件不仅仅在chrome中的asp复选框上触发

时间:2013-05-29 12:08:13

标签: javascript jquery asp.net

这对我来说不适用于chrome

<asp:CheckBox ID="chkFullReIndex" runat="server" ClientIDMode="Static" onchange="funCalled();" />

<script>
     function funCalled() {
        if ($('#chkFullReIndex')[0].checked) {
            alert('check box checked')
        }
        else {
           alert('check box not checked')
        }
    }
</script>

这在Firefox(21.0)中工作得非常好,但在chrome(版本27.0.1453.94 m)中没有工作,我没有得到任何控制台错误

同样的想法

4 个答案:

答案 0 :(得分:3)

使用内联事件注册时,您可以将this发送到该功能:

<asp:CheckBox ID="chkFullReIndex" runat="server" ClientIDMode="Static" onchange="funCalled(this);" />

和js喜欢:

function funCalled(obj) {

    // this is present in the event handler and is sent to the function
    // obj now refers to the CheckBox, so we can do
    if (obj.checked) {
        alert('check box checked')
    } else {
        alert('check box not checked')
    }
}

答案 1 :(得分:2)

我会采用这种方法,因为你正在加载jQuery并且几乎不使用它。

$('#chkFullReIndex').on('change', function(e){
  var $this = ($this);
  if($this.is(':checked')){
    alert('It is checked!');
  } else {
    alert('It is not checked');
  }
});

答案 2 :(得分:1)

要完成跨浏览器功能,请使用此功能检查是否选中了复选框: -

$("#chkFullReIndex").is(':checked')

$("#chkFullReIndex").prop('checked') 

答案 3 :(得分:0)

尝试使用像

这样的onclick事件
<asp:CheckBox runat="server" ID="chkPostback" Text="Check me" onclick="javascript:funCalled(this)"
        ClientIDMode="Static" />

脚本

function funCalled(obj) {
    if (obj.checked) {
        alert('check box checked')
    } else {
        alert('check box not checked')
    }
}

Check