如何让用户选择下拉框选项?

时间:2013-08-14 01:24:01

标签: javascript jquery html

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

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

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

2 个答案:

答案 0 :(得分:0)

required attribute添加到您的select元素中。这至少应该适用于现代浏览器。

它会提醒用户他们选择的选项是否为空值(如您所选择的“无”选项)。当然,你也可以做服务器端验证,因为你不能依赖它。

答案 1 :(得分:0)

Updated Demo

<强> 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.
    }
});

DEMO

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

仅当下拉列表值更改

时才会提交

表单

<select onchange="this.form.submit()">
    ...
</select>