我在
HTML表单上有一个带有“提交”按钮的列表框.列表框已启用多个选择.我可以在列表框中选择多个值,但我不知道如何确定提交表单时选择的值.此外,我使用
JavaScript动态地将用户生成的值添加到列表框中,我希望能够在表单提交时告诉两件事:
这可能吗?谢谢.
解决方法
您可以在下面找到一个页面示例.
注意:
> select元素(和任何表单元素)需要在帖子中包含一个名称.
>只会发布select元素中的选定选项.
用户在框中选择了哪些值?
当用户提交表单时,只会将选定的值发送到服务器.根据您在服务器上使用的语言,有不同的方法来访问它们.
如前所述,您只能看到所选的选项.但是,您如何区分您的选项和用户选项?这取决于您发送给用户的数据.通用答案就是你没有发送的价值.但是,根据您的数据,这可以简化.由于选项同时具有值和文本属性,因此可以使用数值作为预生成值的一种方法.这样,您的值将在回复中为数字,用户值将为文本字符串.此方法假定您的用户不会只输入数值.另一种方法是为所有用户生成的值添加前缀(请记住,您同时拥有所有选项的值和文本字段)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Test of select Box</title> <script type="text/javascript"> function addOpt(e) { var o=document.createElement("option"); //o.value= -e.options.length; o.text = "Test " + e.options.length; o.selected=true; e.add(o,null); } </script> </head> <body> <form method="post" action="mypage.html"> <input type="button" onclick="addOpt(this.form.myselect)" value="Add option"/> <br/> <select id="myselect" name="mydata" multiple="multiple" size="10"> <option value="0">Test 0</option> <option value="1">Test 1</option> <option value="2">Test 2</option> </select> <br/> <input type="submit"/> </form> </body> </html>