Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery选择框验证_Jquery_Jquery Validate - Fatal编程技术网

jQuery选择框验证

jQuery选择框验证,jquery,jquery-validate,Jquery,Jquery Validate,我在jQuery中有以下代码。 当select元素的选项值为0时,我需要显示一条验证消息Year Required <script type="text/javascript"> $(document).ready(function () { $("#register").validate({ debug: true, rules: { year: { required: function () {

我在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>

将整个过程简化一点,用逗号修复一些问题,这些问题会使一些浏览器崩溃:

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

跳转到假设,如果您的选择没有此属性validate=required:true?

要将require规则放在选择列表中,您只需要一个具有空值的选项

那么只需要自己申请就足够了

<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>
由于无法在第一个选项中设置value=,因此需要使用创建自己的规则

jQuery:

HTML:

HTML:

演示:

编辑“选择”的代码,如下所示,以检查从选择列表中选择的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);

Jquery选择框验证。您可以根据需要通过Alert或将消息放入Div来警告消息

年 1919 1920 1921 1922 点击 $clickme.clickfunction{ 如果$year选项:选中。val='0'{ 警报请至少选择一个选项; $message.htmlSelect至少一个选项; } };

如果$'year option:selected'.val==0这些是额外的逗号输入错误还是错误?@wolvern谢谢。。。但它不起作用。我已经用IE检查过了,但没有显示任何编码错误。有什么想法吗?请不要发布重复的内容,特别是当其他人已经发布了试图帮助你的答案时:@Mark谢谢。。编码似乎没有错误,但它没有产生正确的输出没有输出。我想我们需要知道您正在使用的确切验证插件。它被标记为这样的插件,但我修改了标题以使其更清晰。@Mark.不工作。。你能说出哪个可用的插件最适合它吗。我不知道我使用MarkSchultheiss&Sparky的确切插件的名称。当我今年以这种方式设置时,它工作得很好。我想我们今年的工作不在银行里。。使用空值可以很好地工作。但我不能在程序中使用空值,因为它是从数组显示的。要添加空值,只需使用required:true:@Tom,您应该在OP中提到这一点,并且您还应该礼貌地回答别人在您的另一个问题上发布的答案:@Tom您可以使用规则{min:1}在这种情况下,与select2插件一起使用时不需要自定义规则,它没有聚焦正确的元素?为什么会有火花。。它现在开始工作了。是的,我知道第二个选项,但我不能从选项值中扣除零。你能解释一下这个jsfiddle的用途吗?@Tom,我在回答中把这两个选项都留给了其他读者,让他们理解两者之间的区别。一些旧浏览器不支持Jquery?如果是这样,我们还需要添加服务器端验证以及客户端脚本?@Tom,服务器端验证是一种备份,可以保护您的数据库和服务器,因为可以绕过JavaScript验证。它与支持旧浏览器无关。@Sparkey。是的,我的意思是,如果Javascript验证或jquery在一些旧浏览器中可能不起作用,它可以被绕过,那么服务器端验证是不可避免的吗?我们还需要添加服务器端验证吗?代码示例很好,但我建议添加一些说明,说明需要做什么,否则答案可能会被标记为质量非常低的答案。该代码用于验证问题中定义的选择框。有两种类型的消息,一种是警报,另一种是打印在Div中。如果您需要更多澄清,请让我知道。谢谢,我的意思是把描述和你的帖子放在一起。所以将来读过它的人也会读它的描述。谢谢
$(document).ready(function () {

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

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

});
<select name="year">
    <option value="0">Year</option>
    <option value="1">1955</option>
    <option value="2">1956</option>
</select>
$(document).ready(function () {

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

});
<select name="year">
    <option value="">Year</option>
    <option value="1">1955</option>
    <option value="2">1956</option>
</select>
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);