0

这在 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

4 回答 4

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')
    }
}
于 2013-05-29T12:12:11.767 回答
2

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

$('#chkFullReIndex').on('change', function(e){
  var $this = ($this);
  if($this.is(':checked')){
    alert('It is checked!');
  } else {
    alert('It is not checked');
  }
});
于 2013-05-29T12:16:34.337 回答
1

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

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

或者

$("#chkFullReIndex").prop('checked') 
于 2013-05-29T12:13:15.063 回答
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')
    }
}

查看

于 2013-05-29T12:12:40.370 回答