2011-03-20 83 views
1

我有一個下拉列表中的html,我想驗證它使用jQuery。在jquery驗證下拉列表

Please select your rating * : 
    <select id="myDropdown"> 
    <option value="">-Please Select-</option> 
    <option value="1">One</option> 
    <option value="2">Two</option> 
    <option value="3">Three</option> 
    <option value="4">Four</option> 
    <option value="5">Five</option> 
    </select> 

我jQuery代碼是一樣

if ($('#myDropdown option:selected').length == 0) 
    { 
     alert("Please select anyone"); 
    } 

我所需要的,如果沒有選中任何價值,它仍然像 - 請選擇是,如果用戶按下提交按鈕,然後警報或任何需要適當的消息顯示 請幫

回答

6
mydropdown = $('#myDropdown'); 
if (mydropdown.length == 0 || $(mydropdown).val() == "") 
{ 
    alert("Please select anyone"); 
} 

見下。此外,您不需要option:selected(根據Sly的原始答案)。

在這個小提琴上,嘗試選擇另一個值,然後嘗試選擇-Please Select-選項。你會看到alert()

http://jsfiddle.net/userdude/aS2AM/

編輯

:長度測試無所事事,因爲它總是會報告1,至少一個選擇總是選擇(和你的選擇總是在選擇至少有一個選項,除非選擇沒有選項)。我已刪除在本次更新的小提琴和下面的代碼:

http://jsfiddle.net/userdude/LdN6c/3/

你沒有捕獲表單提交事件。

$(document).ready(function() { 
    $('#myForm').submit(function(e){ // <<< This selector needs to point to your form. 
     if ($('#myDropdown').val() == "") { 
      alert("Please select anyone"); 
      e.preventDefault(); 
      return false; 
     } 
    }); 
}); 

注意#myForm需要選擇包含所選元素的實際表單元素。

見這裏的行動:http://jsfiddle.net/userdude/LdN6c/1/

+0

當頁面被刷新,它顯示一個警告。但是,當提交表單時,即使下拉選項不顯示任何提醒,請選擇 - – sanjeev 2011-03-20 16:39:37

+0

這是我的jquery代碼現在: $(document).ready(function(){ mydropdown = $('#如果(mydropdown.length == 0 || $(mydropdown).val()==「」) { alert(「請選擇任何人」); } }); – sanjeev 2011-03-20 16:40:05

+0

ohh..in回答,下拉變化事件不存在。你的在線程序對我來說工作正常..謝謝Jared – sanjeev 2011-03-20 16:41:57

-1
jQuery(function($) { 
    $('#myForm').submit(function(e) { 
     if ($('#myDropdown').val() == '') { 
      e.preventDefault(); 
      alert("Please select anyone"); 
     } 
    }); 
}); 
  • 與形式編輯提交事件處理程序
+0

誰投了這個票,我只想指出,長度測試不會做任何事情。直到現在我才意識到這一點,但它總是報告1,因爲總是選擇一個選項。 – 2011-03-20 17:14:27

+0

我認爲這是因爲我沒有提供完整的解決方案而被低估。我沒有意識到他的問題可能在表單提交事件上。 – 2011-03-20 17:17:24

+0

直到他的評論我都沒有發現,所以這將是一個糟糕的投票理由。我真的不知道誰投了票,但我認爲你的答案在技術上是正確的。 – 2011-03-20 17:19:55