jQuery选择框验证

时间:2013-02-15 14:29:39

标签: jquery jquery-validate

我在jQuery中有以下代码 当select元素的选项值为“0”时,我需要显示验证消息“Year Required”。

<script type="text/javascript">
$(document).ready(function () {
   $("#register").validate({
       debug: true,
       rules: {
           year: {
               required: function () {
                   if ($("#year option[value='0']")) {
                       return true;
                   } else {
                       return false;
                   }
               }
           }
       },
       messages: {
           year: "Year Required",
       },
   });
})
</script>

选择框

<select name="year"  id="year">
    <option value="0">Year</option>
    <option value="1">1919</option>
    <option value="2">1920</option>
    <option value="3">1921</option>
    <option value="4">1922</option>
</select>

5 个答案:

答案 0 :(得分:42)

由于您无法在第一个value=""内设置option,因此您需要使用the built-in addMethod() method创建自己的规则。

<强>的jQuery

$(document).ready(function () {

    $('#myform').validate({ // initialize the plugin
        rules: {
            year: {
                selectcheck: true
            }
        }
    });

    jQuery.validator.addMethod('selectcheck', function (value) {
        return (value != '0');
    }, "year required");

});

<强> HTML

<select name="year">
    <option value="0">Year</option>
    <option value="1">1955</option>
    <option value="2">1956</option>
</select>

工作演示:http://jsfiddle.net/tPRNd/


原始答案:(仅当您可以在第一个value=""内设置option

要使用jQuery Validate插件正确验证select元素,只需要第一个option包含value=""。因此,请从0中移除value="0"并将其修复。

<强>的jQuery

$(document).ready(function () {

    $('#myform').validate({ // initialize the plugin
        rules: {
            year: {
                required: true,
            }
        }
    });

});

<强> HTML

<select name="year">
    <option value="">Year</option>
    <option value="1">1955</option>
    <option value="2">1956</option>
</select>

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

答案 1 :(得分:9)

要在选择列表中添加需要规则,您只需要 一个空值的选项

<option value="">Year</option>

然后只需要自己应用就足够了

<script>
    $(function () {
        $("form").validate();
    });
</script>

表格

<form>
<select name="year" id="year" class="required">
    <option value="">Year</option>
    <option value="1">1919</option>
    <option value="2">1920</option>
    <option value="3">1921</option>
    <option value="4">1922</option>
</select>
<input type="submit" />
</form>

<强> fiddle is here

答案 2 :(得分:1)

http://docs.jquery.com/Plugins/Validation/Methods/required

编辑“select”的代码,如下所示,用于检查选择列表中的0或空值选择

case 'select':
var options = $("option:selected", element);
return (options[0].value != 0 && options.length > 0 && options[0].value != '') && (element.type == "select-multiple" || ($.browser.msie && !(options[0].attributes['value'].specified) ? options[0].text : options[0].value).length > 0);

答案 3 :(得分:1)

Jquery Select Box Validation.You可以通过提醒提醒消息或根据您的要求在Div中放置消息。

&#13;
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="message"></div>
<form method="post">
<select name="year"  id="year">
    <option value="0">Year</option>
    <option value="1">1919</option>
    <option value="2">1920</option>
    <option value="3">1921</option>
    <option value="4">1922</option>
</select>
<button id="clickme">Click</button>
</form>
<script>
$("#clickme").click(function(){

if( $("#year option:selected").val()=='0'){

alert("Please select one option at least");

  $("#message").html("Select At least one option");

}


});

</script>
&#13;
&#13;
&#13;

答案 4 :(得分:0)

简化整个事情,用逗号修复一些问题会破坏一些浏览器:

  $(document).ready(function () {
       $("#register").validate({
           debug: true,
           rules: {
               year: {
                   required: function () {
                       return ($("#year option:selected").val() == "0");
                   }
               }
           },
           messages: {
               year: "Year Required"
           }
       });
   });

跳转到一个假设,如果您选择不具有此属性validate="required:true"