-1

我必须使用 jquery validate 插件来验证这样的表单:

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

}

});

});

有任何想法吗?

4

1 回答 1

0

您的代码中有很多问题:

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

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

  • 您的 jQuery 代码似乎是自定义验证代码,但它与 jQuery Validate 插件将使用的完全不同。

  • 您的开始<form标签缺少右括号,>.

  • 为了让 jQuery Validate 插件正常工作,每个输入都必须有一个唯一的name属性。您的两个select元素都命名为Input. 在我的回答中,我已将它们重命名为Input1and Input2

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

  • 要从一组项目中要求一个项目,您可以使用文件require_from_group中包含的规则/方法。不要忘记也包含此文件。组中的每个项目都必须包含一个. 我还使用了将错误消息合并为一条的选项。additional-methods.jsselectclassgroups

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

});

演示:http: //jsfiddle.net/rj5Gw/

于 2013-05-20T21:34:32.933 回答