1

单击复选框时,我想重定向到另一个页面。

<script type="text/javascript"><!--
$(document).ready(function(){
    jQuery(".cbno").click(function(e){
        e.preventDefault();
        alert('test');
        alert(this.val());
//      window.location = this.val();
    });
});
//-->
</script>

<input type="checkbox" class="cbno" name="content" value="/map/?filter=all" />

很简单——但我不明白为什么第二个警报没有产生任何输出?Internet Explorer 说:“该对象不支持方法 val”。

如果我使用 this.getAttribute('value') 它可以工作 - 为什么它不能与 jquery val() 一起工作?

4

5 回答 5

4

采用

alert(jQuery(this).val());
于 2012-04-07T10:41:51.450 回答
2

任何一个$(this).val()$(this).attr("value")this.getAttriute("value")this.value将起作用

请在 $() 和 jQuery() 上保持一致

<script type="text/javascript"><!--
$(document).ready(function(){
    $(".cbno").click(function(e){
        e.preventDefault();
        window.location = $(this).val();
    });
});
//-->
</script>

<input type="checkbox" class="cbno" name="content" value="/map/?filter=all" />
于 2012-04-07T10:41:09.083 回答
1

因为这不是一个 jQuery 对象。你需要使用 $(this).val();

于 2012-04-07T10:40:09.250 回答
0

改变:

alert(this.val());

到:

alert($(this).val());

$(this)指您所追求的复选框。


您也可以简单地使用:

this.value

所以你可以像这样修改你的代码:

$(document).ready(function(){
    jQuery(".cbno").click(function(e){
        e.preventDefault();
        alert(this.value);
        //window.location = this.value;
    });
});
于 2012-04-07T10:40:22.377 回答
0
$(document).ready(function(){
    jQuery(".cbno").click(function(e){
        e.preventDefault();
        alert('test');
        alert( $(this).val());
//      window.location = $(this).val();
    });
});

事件中的 this 函数是指向 DOM 元素的链接,因此您应该使用它的方法创建一个 jQuery 对象来获取它们

于 2012-04-07T10:40:53.063 回答