点击提交时HTML表单省份数据无法提交的问题排查
注册表单下拉列表提交问题解决方法
- 核心问题:下拉选择器的
name属性必须定义在<select>标签上,而不是每个<option>标签里。表单提交时,是通过<select>的name来识别字段的,你之前把name加到option上,服务器端根本接收不到这个字段数据。 - 额外小问题:第一个option的id写了多余的等号
id="=ec",建议修正为id="ec",虽然不影响提交,但不符合HTML规范。
修正后的下拉列表代码:
<h3>Which province are you from?</h3> <select name="province"> <option value="easternCape" id="ec">Eastern Cape</option> <option value="freeState" id="fs">Free State</option> <option value="gauteng" id="gp">Gauteng</option> <option value="kwaZulu-Natal" id="kzn">KwaZulu-Natal</option> <option value="limpopo" id="lim">Limpopo</option> <option value="mpumalanga" id="mp">Mpumalanga</option> <option value="northWest" id="nw">North West</option> <option value="northernCape" id="nc">Northern Cape</option> <option value="westernCape" id="wc">Western Cape</option> </select><br>
说明:
- 把
name="province"移到<select>标签后,表单提交时就会将选中的option的value值,以province=选中值的形式发送,和你现有的复选框、单选按钮逻辑保持一致。 - 每个option不需要设置name属性,只需要保留value(提交时的实际数据值)和可选的id(用于JS或CSS定位)就够了。
内容的提问来源于stack exchange,提问作者Hunter
相关产品推荐
相关产品推荐

