2

我正在使用 jQuery 多选下拉框。由于它是默认属性,我无法使用它的 name 属性对其进行验证。所以我想用 id 进行验证。我以此为参考。但我的想法行不通。我不知道我的错误在哪里??

HTML

<form id="form1" method="post" action="">
    <div>
        <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>
    </div>
</form>
<input type="submit" id="submit1" value="Save" /> 

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);
    });
});

小提琴

4

4 回答 4

2

尝试这个

代码

<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为您提供您选择的值的数量。

于 2013-10-25T07:04:04.903 回答
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>
于 2013-10-25T06:40:20.803 回答
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);
    });
});
于 2013-10-25T08:35:39.610 回答
-1

试试这个:

$(function () {

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

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

        }
    });
 });
});
于 2013-10-25T08:07:33.073 回答