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" />

非常に単純ですが、2 番目のアラートで出力が生成されない理由がわかりません。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();
    });
});

このイベント関数は DOM 要素へのリンクであるため、それらを取得するメソッドを使用して jQuery オブジェクトを作成する必要があります。

于 2012-04-07T10:40:53.063 に答える