验证多个选择列表

时间:2013-05-20 20:53:57

标签: validation select jquery-validate

我要使用jquery validate plugin验证这样的表单:

<form class="myform"
<select name="Input" id="input1">
<option value="DO0" opt_numAdults="2" opt_numChilds="0" >0</option>
<option value="DO1" opt_numAdults="2" opt_numChilds="0" >1</option>
<option value="DO2" opt_numAdults="2" opt_numChilds="0" >2</option>
<option value="DO3" opt_numAdults="2" opt_numChilds="0" >3</option>
<option value="DO4" opt_numAdults="2" opt_numChilds="0" >4</option>
<option value="DO5" opt_numAdults="2" opt_numChilds="0" >5</option>
</select>
<select name="Input" id="input2">
<option value="FP0" opt_numAdults="2" opt_numChilds="1" >0</option>
<option value="FP1" opt_numAdults="2" opt_numChilds="1" >1</option>
<option value="FP2" opt_numAdults="2" opt_numChilds="1" >2</option>
<option value="FP3" opt_numAdults="2" opt_numChilds="1" >3</option>
<option value="FP4" opt_numAdults="2" opt_numChilds="1" >4</option>
<option value="FP5" opt_numAdults="2" opt_numChilds="1" >5</option>
</select>
<button type="submit" id="mybutton">Go</button>
</form>

如果他没有选择至少这两个字段中的一个,我需要停止用户。 我正在使用此代码,但它无法正常工作......

$bt('.myform').submit(function(){

if($('#input1').val() == "" || $bt('#input2').val() == ""){

alert("Complete all fields!");

return false;

}

});

});

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您的代码中存在很多问题:

  • 你说你想使用jQuery Validate插件,但我在你的代码中没有看到插件。您至少必须包含该插件并调用.validate()方法进行初始化。

  • 在您的jQuery代码中,您使用$bt以及$。我不知道你在这里想做什么。什么是$bt?在这个答案中,我将使用$来引用jQuery对象。

  • 您的jQuery代码似乎是自定义验证代码,但它实际上与jQuery Validate插件无关。

  • 您的开场<form标记缺少结束括号>

  • 要使jQuery Validate插件正常工作,每个输入必须具有唯一的name属性。您的select个元素都命名为Input。在我的回答中,我已将其重命名为Input1Input2

  • 对于验证select元素的jQuery Validate插件,每个option中的第一个select元素必须包含value=""属性。

  • 要使用一组商品中的一件商品,请使用additional-methods.js file中包含的require_from_group规则/方法。别忘了也包括这个文件。组中的每个select项都必须包含class。我还使用groups选项将错误消息合并为一个。

<强> HTML:

<form class="myform">
    <select name="Input1" id="input1" class="selectgroup">
        <option value="">please select...</option>
        <option value="DO0" opt_numAdults="2" opt_numChilds="0">0</option>
        <option value="DO1" opt_numAdults="2" opt_numChilds="0">1</option>
        ...
    </select>
    <br/>
    <select name="Input2" id="input2" class="selectgroup">
        <option value="">please select...</option>
        <option value="FP0" opt_numAdults="2" opt_numChilds="1">0</option>
        ...
    </select>
    <br/>
    <button type="submit" id="mybutton">Go</button>
</form>

<强> jQuery的:

$(document).ready(function () {

    $('.myform').validate({ // initialize the plugin
        rules: {
            Input1: {
                require_from_group: [1, ".selectgroup"]
            },
            Input2: {
                require_from_group: [1, ".selectgroup"]
            }
        },
        groups: {
            group: "Input1 Input2"
        }
    });

});

DEMO:http://jsfiddle.net/rj5Gw/