2012-07-24 101 views
1

我有一個生成選項列表的wordpress插件。生成的代碼是這樣的:檢查值選擇選項列表

<select name="question"> 
    <option value="yes">Yes</option> 
    <option value="no">No</option> 
    <option value="maybe">Maybe</option></select> 

<p id="text">some text</p> 

下面是一段我喜歡顯示,如果選項可能被選中。如果選擇是或否,應該隱藏。

jQuery的腳本,我想出了(谷歌搜索,複製和粘貼大量的後)是這樣的:

$('select').change(function(){ 
    var selectVal = $(‘select’).val(); 

      if($selectVal=="maybe"){ 
       $('#text').show();} 
      else{ 
      $('#text').hide();} 
     }); 

Unfortunally這不起作用。任何人有一個想法我做錯了什麼或如何做對嗎?

+0

按照更改活動文檔:'對於se當用戶使用鼠標進行選擇時,立即觸發事件,但對於其他元素類型,事件被推遲到元素失去焦點時爲止「 – 2012-07-24 18:28:34

+0

」您的意思是什麼「不是工作」?它做什麼,你期望什麼? – 2012-07-24 18:29:07

回答

1
$('select[name=question]').change(function(){ 
    var selectVal = $(this).val(); 

    if(selectVal=="maybe"){ 
    $('#text').show(); 
    }else{ 
    $('#text').hide();} 
}); 

的jsfiddle:http://jsfiddle.net/ufomammut66/xqCKD/

+0

這對我來說非常合適。謝謝Shortround1911! :) – Benno 2012-07-25 08:04:59

2

$selectVal不同於selectVal。而精明的引號在jQuery選擇器中是不可以的。

您還需要隱藏段落onload。 CSS display: none可以做到最好。

http://jsfiddle.net/mblase75/uz2uf/

順便說一句,你可以傳遞一個布爾到.toggle()方法,以縮短你的代碼:

$('select').change(function() { 
    var selectVal = $(this).val(); 
    $('#text').toggle(selectVal=="maybe"); 
});​ 

http://jsfiddle.net/mblase75/uz2uf/1/

+0

感謝Blazemonger。這是一個很好的解決方案,並在jsfiddle中完美工作。只有與我的wordpress插件一起,它不起作用。我已將切換功能更改爲Shortround1911的if和else,現在它可以工作。 :) – Benno 2012-07-25 08:04:35

+0

在jQuery 1.3中添加了一個布爾值['.toggle()'](http://api.jquery.com/toggle/) - 我不知道WordPress是否真的運行了一箇舊版本。 – Blazemonger 2012-07-25 13:12:54