2013-10-25 23 views
2

我正在使用jQuery多選下拉框。由於它的默認屬性,我無法使用它的名稱屬性對其進行驗證。所以我想用id來驗證。我使用this作爲參考。但我的想法不起作用。我不知道我的錯誤在哪裏?無法驗證ID爲jQuery多選下拉列表

HTML

JS

$(function() { 
    $("#submit1").click(function() { 
     alert("submit") 
     var $off = $("#offer1").attr("name"); 
     var $params = { 
      debug: true, 
      rules: {}, 
      messages: {} 
     }; 
     $params['rules'][$off] = "off"; 
     $params['messages'][$off] = "Select an offer"; 

     $("#form1").validate($params); 
    }); 
}); 

fiddle

+1

您選擇標籤正在關閉錯誤 – caramba

+0

也經過我的驗證不起作用 – Sam

+0

什麼是不工作,是否有任何錯誤?你的小提琴沒有jQuery或jQuery驗證插件。你在嘗試和驗證之前是否鏈接到它們? – gwillie

回答

0

請刪除[]中添加規則和消息

答案是:

$(function() { 
    $("#submit1").click(function() { 
     alert("submit"); 
     var $off = $("#offer1").attr("name"); 
     var $params = { 
      debug: true, 
      rules: {}, 
      messages: {} 
     }; 

     //// Please note here 
      $params.rules [$off] = "required";  
      $params.messages[$off] = "Select an offer"; 

     // 
     $("#form1").validate($params); 
    }); 
}); 
+0

不要添加多個ans。如果你想做一些改變,你可以編輯你的第一個答案。 – Arpit

+0

@ abdul-razak謝謝你 – Sam

+0

-1,你絕對不需要在'click'處理程序中放置'.validate()'。 '.validate()'調用是**一次** _initialization_方法,因此不需要在'click'按鈕上重複調用。提交按鈕的點擊事件由插件自動捕獲。我知道你只是在複製OP的代碼,但是,如果你打算髮佈一個答案,那麼它可能會促進正確的使用。 @Sam,請參閱:http://jsfiddle.net/BzSLC/ – Sparky

0

附上<option>標籤<select>標籤

<select name="offer" id="offer1> 
    <option value="">Select one</option> 
    <option value="aaaaa">aaaaaaaaaaa</option> 
    <option value="bbbbb">bbbbbbbbbbb</option> 
    <option value="cccccc">ccccccccccc</option> 
</select> 
+0

雅。糾正它。此後也沒有不工作 – Sam

2

試試這個

HTML代碼

<form id="RNA" name="RNA"> 
    <select size="5" name="sampleMut[]" multiple="multiple" id="sampleMut"> 
    <option value="41" >41</option> 
    <option value="48" >48</option> 
    <option value="65" >65</option> 
    <option value="102" >102</option> 
    </select> 
    <input type="submit" /> 
</form> 

JavaScript代碼

$(function(){ 
$('form').submit(function(){ 
    var options = $('#sampleMut > option:selected'); 
    if(options.length == 0){ 
     alert('no value selected'); 
     return false; 
    } 
}); 
}); 

您可以選擇這個選擇多個值。 options.length爲您提供了多少您選擇的值。

-1

試試這個:

$(function() { 

$("#submit1").click(function(){ 
alert("submit"); 
$("#form1").validate({ 
     rules: { 
      offer: "required" 

     }, 
     messages: { 
      offer: "Select an Offer" 

     } 
    }); 
}); 
}); 
+0

-1,你絕對不需要在'click'處理程序中放置'.validate()'。 '.validate()'調用是**一次** _initialization_方法,因此不需要在'click'按鈕上重複調用。提交按鈕的點擊事件由插件自動捕獲。請參閱:http://jsfiddle.net/BzSLC/ – Sparky