0

我正在使用以下答案来实现所需的下拉框。唯一的区别是我的应用程序中的下拉框代码在一个新的页面中,它将被弹出。

问题是一旦用户选择了任何选项,包括没有值的选项,表单就会被提交!

第 1 页

   <script src="http://ajax.aspnetcdn.com/ajax/jquery.validate
                                                         /1.9/jquery.validate.js"
                                                        </script>
   <script type="text/javascript">

          $("#everything").validate({
              messages: {
                  dd1: {
                     required: "Please select an option from the list, if 
                                none are appropriate please select 'Other'"
                }
            }
          });
          function popup(){
             document.getElementById("mydropbox").style.display = "Block";
              >> send request to server to show the Page 2 in body of mydropbox <<
             return false;
          }
   </script>

</head>
<body>

    <a href="" OnClick="return popup()">popup</a>

    <div id="mydropbox"></div>
...  
</body>
</html>

第2页

<html>
 <body>
    <form id="everything">
             <label for="dd1">Select the best option</label><br/>
             <select name="dd1" id="dd1" class="required">
                 <option value="">None</option>
                 <option value="o1">option 1</option>
                 <option value="o2">option 2</option>
                 <option value="o3">option 3</option>
             </select> 
             <br/><br/>
             <input type="submit" />
   </form>
 </body>
</html>
4

2 回答 2

0

required属性添加到您的select元素。这至少应该在现代浏览器中工作。

如果他们选择的选项具有空值(如您的情况下的选项“无”),它会提醒用户。当然,您也应该进行服务器端验证,因为您不能依赖它。

于 2013-08-14T01:35:15.413 回答
0

更新的演示

HTML

<input type="submit" id="sbt" /> //added id to the submit button sbt

js

$('#sbt').click(function (e) {
    e.preventDefault(); //stop form submit
    if ($('#dd1 option:selected').text() != 'None') {
        $('#everything').trigger('submit'); // if selected text not = to None then trigger form submit.
    }
});

演示

从表单中删除提交按钮并使用它

仅当下拉列表值更改时才会提交表单

<select onchange="this.form.submit()">
    ...
</select>
于 2013-08-14T01:35:23.450 回答