onClick函数返回undefined

时间:2011-06-03 11:18:36

标签: javascript jquery

由于某种原因,以下代码无法正常运行:

<input onclick="$(function(){ alert($(this).attr('checked')); })" name="step1[agree]" id="step1_agree" value="1" type="checkbox">

它以undefined提醒。我也尝试过这样的事情:

onclick="$(function(){ var chk=$(this); alert(chk.attr('id')); })"

...但最终会得到相同的结果。我做错了什么,如何解决这个问题?

6 个答案:

答案 0 :(得分:5)

<input onclick="alert($(this).attr('checked'));" name="step1[agree]" id="step1_agree" value="1" type="checkbox">

但更好的选择是

<input name="step1[agree]" id="step1_agree" value="1" type="checkbox">

$('#step1_agree').click(function() {
  alert($(this).attr('checked));
});

答案 1 :(得分:3)

这应该有效。

onclick="alert(this.checked);"

答案 2 :(得分:2)

请在jQuery中了解binding

$('#step1_agree').bind('click', function() {
    alert(this.checked);
});

答案 3 :(得分:1)

不确定为什么要将它包装在这样的函数中。它应该只是

onclick="alert($(this).attr('id'));"

答案 4 :(得分:0)

请参阅unobtrusive javascript

您可以使用类似

的内容
$(function(){
    $("#step1_agree").click(function(){
       alert (this.checked); 
    });
});
一旦DOM准备好,

$(function(){ });就会被解雇。

您必须在文档就绪中分配所有事件处理程序。您可以使用id selectorclick event handler附加到所需元素。要获取checked属性,您可以使用原生javascript代码this.checked

答案 5 :(得分:0)

似乎你必须使用以下内容:

<script type="text/javascript">
    $(function(){
$('#step1_agree').click(function(){
alert('')
});
}) 
</script>