复选框javascript在asp.net中无效

时间:2017-08-09 13:13:56

标签: javascript jquery

我需要在ASP.Net中查看我的网站的复选框状态,但我无法使用javascript:

<li>
  <a id="link" href="/ControlHoras">Control Horas</a>
  <input onchange="favButton()" name="checkbox" type="checkbox" id="ControlHoras"/>
</li> 
function favButton() {
  if ($(this).is(":checked")) {
    var id = this.id;           
    alert('checked');
  } else { 
    alert('unchecked');
  }
};

3 个答案:

答案 0 :(得分:2)

由于您使用的是过时的this事件属性,因此favButton中的{p> onchange将成为窗口,而非点击的复选框。

您可以使用不显眼的事件处理程序附加事件处理程序来改进代码并避免此问题,如下所示:

$('#ControlHoras').change(function() {
  if ($(this).is(":checked")) {
    var id = this.id;
    alert('checked');
  } else {
    alert('unchecked');
  }
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
  <li>
    <a id="link" href="/ControlHoras">Control Horas</a>
    <input name="checkbox" type="checkbox" id="ControlHoras" />
  </li>
</ul>

答案 1 :(得分:1)

<li>
    <a id="link" href="/ControlHoras">Control Horas</a>
    <input onclick="favButton()" name="checkbox" type="checkbox" id="ControlHoras"/>
</li> 

答案 2 :(得分:0)

获取呼叫者/发送者的正确方法是通过event参数。事实上,如果事件没有event参数,Firefox会忽略这些事件。

function favButton(event) {
  if ($(event.currentTarget).is(":checked")) {
    var id = event.currentTarget.id;           
    alert('checked');
  } else { 
    alert('unchecked');
  }
};