2012-04-07 76 views
1

單擊複選框時,我想重定向到另一個頁面。在jQuery中獲取輸入值

<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('價值') - 爲什麼它不適用於jquery val()?

回答

4

使用

alert(jQuery(this).val()); 
+0

+1簡單到點。檢查什麼是錯誤 – kommradHomer 2012-04-07 10:43:41

+0

啊,是的。當然!謝謝。 – reggie 2012-04-09 11:15:20

1

因爲這不是一個jQuery對象。你需要使用$(this).val();

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; 
    }); 
}); 
0
$(document).ready(function(){ 
    jQuery(".cbno").click(function(e){ 
     e.preventDefault(); 
     alert('test'); 
     alert($(this).val()); 
//  window.location = $(this).val(); 
    }); 
}); 

這事件的功能是一個鏈接DOM元素,所以你應該用它的方法創建一個jQuery對象他們

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