2 回答
TA贡献1842条经验 获得超12个赞
提交表单后,value将发送所选选项。问题是因为您使用此值来将子option元素与父元素匹配。
要解决此问题,您需要value按预期使用,即。保存提交表单时要发送到服务器的值,并使用不同的方法option对 之间的元素进行分组select。我建议使用一个data属性来代替,如下所示:
$("#select1").change(function() {
if (!$(this).data('options')) {
$(this).data('options', $('#select2 option').clone());
}
var category = $(this).find('option:selected').data('category');
var options = $(this).data('options').filter(function() {
return $(this).data('category') == category;
});
$('#select2').html(options);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form method="POST" action="process.php">
<select name="select1" id="select1">
<option data-category="0" value="">-Select-</option>
<option data-category="1" value="Cars">Cars</option>
<option data-category="2" value="Phones">Phones</option>
<option data-category="3" value="Birds">Birds</option>
</select>
<select name="select2" id="select2">
<option data-category="0" value="Cars">-Select-</option>
<option data-category="1" value="BMW">BMW</option>
<option data-category="1" value="Benz">Benz</option>
<option data-category="1" value="Toyota">Toyota</option>
<option data-category="2" value="iPhone">iPhone</option>
<option data-category="2" value="Samsung">Samsung</option>
<option data-category="2" value="Motorola">Motorola</option>
<option data-category="3" value="Eagle">Eagle</option>
<option data-category="3" value="Hawk">Hawk</option>
<option data-category="3" value="Dove">Dove</option> <!-- note I fixed your typo here, missing / -->
</select><br>
</form>
TA贡献2041条经验 获得超4个赞
只需将值从number更改为text即可。
例子
<option value="Hawk">Hawk</option> <option value="Dove">Dove<option>
- 2 回答
- 0 关注
- 96 浏览
添加回答
举报