Onchange事件是不火的asp复选框仅在chrome浏览器

onchange event is not fire on asp checkbox in chrome only

本文关键字:复选框 chrome 浏览器 asp 事件 Onchange      更新时间:2023-09-26

这在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)中不工作,我没有得到任何控制台错误相同的

当使用内联事件注册时,您可以将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')
    }
}

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

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

要实现跨浏览器功能,可以使用这个来检查复选框是否被选中:-

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

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

尝试使用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')
    }
}
检查