2013-01-09 174 views
2

我是jQuery的新手,無法在下拉框中觸發更改事件。jQuery下拉更改事件無觸發

這是我的HTML標記

<select id="mini_bookinglocation" name="mini_bookinglocation"> 
    <option selected="selected" value="">Please Select</option> 
</select> 

這是我jQuery

$("#mini_bookinglocation").change(function() 
{ 
    alert(" test "); 
}); 

我試圖把這個文檔準備好塊的內部以及外部,但似乎我不能讓它工作。我沒有看到警報出現。

我還需要保持這些功能與文檔就緒部分?

任何人都可以幫忙嗎?

謝謝

只是補充說,上述值將通過動態使用jQuery。

+1

瀏覽器控制檯中是否有錯誤? – phnkha

+2

您沒有任何其他選項。那麼你是如何嘗試下拉效應的? –

+0

stry在選擇元素中添加更多選項 – Amyth

回答

0

我發現這個問題。這是因爲在我的代碼中,我在一個地方使用jQuery,在另一個地方使用$。我能夠谷歌這一點,只是改變了所有的jQuery和刪除所有$,它的工作原理。抱歉沒有顯示完整的代碼,但我可以通過閱讀所有答案來學習。

謝謝大家的幫助。

5

嘗試添加更多選項,因爲當值發生更改時會觸發更改事件。在你的情況下,值沒有變化。

<select id="mini_bookinglocation" name="mini_bookinglocation"> 
    <option selected="selected" value="">Please Select</option> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    </select> 

docs

變化事件被髮送到一個元件在其值的變化。對於 選擇框,複選框和單選按鈕,當用戶使用鼠標進行選擇時,會立即觸發事件 ,但對於 其他元素類型,事件將延遲到元素失去焦點時纔會觸發 。

此外,我是否需要保留這些功能與文檔就緒部分?

沒有,有沒有必要把代碼下準備功能,因爲該事件被觸發時會發生變化

DEMO

+0

@Amyth我編輯了我的答案 – Sibu

8

你只有一個下拉列表中的價值。所以價值永遠不會改變。那就是爲什麼.change沒有被調用。 嘗試在選擇框中添加更多選項。

還有你應該document.ready裏面寫jQuery代碼。

+0

_「你也必須始終在document.ready中寫入jQuery代碼。」_ - 總是?當然不。如果出現在正在討論的元素後面的腳本塊中,它將起作用。 – nnnnnn

+0

在瀏覽器控制檯中看不到任何錯誤。 – BenW

1

文檔準備功能

<html> 
    <head> 
     <script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script> 
     <script type="text/javascript"> 

     $(document).ready(function() { 
      $("#mini_bookinglocation").change(function() { 
       alert(" test "); 
      }); 
     }); 

     </script> 
    </head> 
    <body> 
     <select id="mini_bookinglocation" name="mini_bookinglocation"> 
     <option selected="selected" value="">Please Select</option> 
     <option value="A">Option A</option> 
     <option value="B">Option B</option> 
     <option value="C">Option C</option> 
     <option value="D">Option D</option> 
     <option value="E">Option E</option> 
     </select> 
    </body> 
</html> 

這裏分配變化事件監聽器是一個example