【问题标题】:JQuery Validate Dropdown listJQuery 验证下拉列表
【发布时间】:2012-09-17 21:58:05
【问题描述】:

我正在使用来自here 的验证插件。我正在尝试强制用户在下拉列表中选择一个选项,所以这是我的 html 列表:

Select the best option<br/>
<select name="dd1" id="dd1">
<option value="none">None</option>
<option value="o1">option 1</option>
<option value="o2">option 2</option>
<option value="o3">option 3</option>
</select> <br/><br/>​

这里是 jquery 验证的东西:

$("#everything").validate({
    onsubmit: true,
    rules: {
     dd1: {
      required: {
        depends: function(element) {
            return $("#dd1").val() == "none";
        }
      }
    },
    messages: {
     dd1: {
      required: "Please select an option from the list, if none are appropriate please select 'Other'",
     },
    }
});

我没有看到任何问题,但即使我从下拉列表中选择无并单击提交,它也不会验证它,因此不会显示任何消息。谁能告诉我我做错了什么?

【问题讨论】:

  • 控制台中有任何javascript错误吗?可能不是问题,但去掉“消息”中“dd1”之后的无用逗号

标签: jquery html validation drop-down-menu jquery-validate


【解决方案1】:

required()documentation 声明:

要强制用户从选择框中选择一个选项,请提供一个空选项,例如 &lt;option value=""&gt;Choose...&lt;/option&gt;

通过在您的&lt;option&gt; 标记中添加value="none",您可以防止进行验证调用。您还可以删除您的自定义验证规则,从而简化您的代码。这是一个 jsFiddle 展示它的实际效果:

http://jsfiddle.net/Kn3v5/

如果您无法将value 属性更改为空字符串,我不知道该告诉您什么...我找不到任何其他方法来验证它。

【讨论】:

  • 一年多过去了,仍然有帮助,这就是美...谢谢。 :-)
【解决方案2】:

我们知道 jQuery validate 插件会在 Select 字段为空值时使其无效。为什么我们不在需要时将其值设置为空白。

是的,您可以使用一些预定义值验证选择字段。

$("#everything").validate({
    rules: {
        select_field:{
            required: {
                depends: function(element){
                    if('none' == $('#select_field').val()){
                        //Set predefined value to blank.
                        $('#select_field').val('');
                    }
                    return true;
                }
            }
        }
    }
});

我们可以为选择字段设置空白值,但在某些情况下我们不能。例如:使用为您生成下拉字段的函数,而您无法控制它。

我希望它对我有所帮助。

【讨论】:

    【解决方案3】:

    这是我的解决方案:

    我在选择标签中添加了必需

                    <div class="col-lg-10">
                    <select class="form-control" name="HoursEntry" id="HoursEntry" required>
                        <option value="">Select.....</option>
                        <option value="0.25">0.25</option>
                        <option value="0.5">0.50</option>
                        <option value="1">1.00</option>
                        <option value="1.25">1.25</option>
                        <option value="1.5">1.50</option>
                        <option value="2">2.00</option>
                        <option value="2.25">2.25</option>
                        <option value="2.5">2.50</option>
                        <option value="3">3.00</option>
                        <option value="3.25">3.25</option>
                        <option value="3.5">3.50</option>
                        <option value="4">4.00</option>
                        <option value="4.25">4.25</option>
                        <option value="4.5">4.50</option>
                        <option value="5">5.00</option>
                        <option value="5.25">5.25</option>
                        <option value="5.5">5.50</option>
                        <option value="6">6.00</option>
                        <option value="6.25">6.25</option>
                        <option value="6.5">6.50</option>
                        <option value="7">7.00</option>
                        <option value="7.25">7.25</option>
                        <option value="7.5">7.50</option>
                        <option value="8">8.00</option>
                    </select>
    

    【讨论】:

      【解决方案4】:

      完成它的最简单方法是将required 添加到您的select

      Select the best option
      <br/>
      
      <select name="dd1" id="dd1" required>
      <option value="none">None</option>
      <option value="o1">option 1</option>
      <option value="o2">option 2</option>
      <option value="o3">option 3</option>
      </select> 
      
      <br/><br/>​
      

      【讨论】:

        【解决方案5】:
            <div id="msg"></div>
        <!-- put above tag on body to see selected value or error -->
        <script>
            $(function(){
                $("#HoursEntry").change(function(){
                    var HoursEntry = $("#HoursEntry option:selected").val();
                    console.log(HoursEntry);
                    if(HoursEntry == "")
                    {
                        $("#msg").html("Please select at least One option");
                        return false;
                    }
                    else
                    {
                        $("#msg").html("selected val is  "+HoursEntry);
                    }
                });
            });
        </script>
        

        【讨论】:

          【解决方案6】:
          $(document).ready(function(){
          $("#HoursEntry").change(function(){
          var HoursEntry = $(#HoursEntry option:selected).val();
          if(HoursEntry == "")
          {
          $("#HoursEntry").html("Please select");
          return false;
          }
          });
          });
          

          【讨论】:

            【解决方案7】:

            我稍微修改了您的代码。这是一个工作版本(对我来说):

                <select name="dd1" id="dd1">
                   <option value="none">None</option>
                   <option value="o1">option 1</option>
                   <option value="o2">option 2</option>
                   <option value="o3">option 3</option>
                </select>  
                <div style="color:red;" id="msg_id"></div>
            
            <script>
                $('#everything').submit(function(e){ 
                    var department = $("#msg_id");
                    var msg = "Please select Department";
                        if ($('#dd1').val() == "") {
                            department.append(msg);
                            e.preventDefault();
                            return false;
                        }
                    });
             </script>
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2012-03-12
              • 2022-06-11
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多