我有一个HTML<form>具有两个独立<选择>。<option>在第二<select>基于<option>在第一<选择>。使用mcravens的建议,这很好,并在这里进一步详细说明。
尽管第一<select>值在按下<submit>按钮,第二个<select>始终重置为"--select one--"。我希望第二选择的值保持显示和不变,直到手动改变或者第一<选项>已更改(这将更改第二个可用选项(。
我已经能够通过在select中添加名称来捕获第二个选定值的值:(HTML(
<select name="CSsize" id="size">
<option value="">Select...</option>
</select>
然后使用$_POST来收集所选择的值:(PHP(
if(isset($_POST["CSsize"]) && !empty($_POST["CSsize"])) {
$CSsize = $_POST["CSsize"];} else { $CSsize="0";}
这意味着我可以捕获第二<提交后选择>,并在剩余代码中使用它。没有问题,我的问题纯粹是如何保持所选值显示在第二<在页面上选择>。
我试着修改了第二个<使用PHP echo等选择>,例如:
<option <?php if ($CSsize != "0" ) echo 'selected' ; ?> value=""></option>
并尝试使用if语句修改.js,例如:
if ($("#size").val() !== "Select...") {
似乎什么都不起作用,第二个<select>每次都会自动重置。
我很想得到一些帮助,告诉我哪里出了问题?!谢谢
我可以捕获第二个<提交后选择>并在剩余代码中使用
如果我理解正确,您可以使用以下script
区域中捕获的结果生成option
的selected
属性
"<option>item1...</option><option <?php echo .... 'selected'; ?> >item1...</option>"...
如果使用php
的.js file
操作不是一个选项,则可以在select
元素中使用data
属性并通过.data()
检索它
然后在.ready()
结束时调用$("#type").change()
将像往常一样执行处理程序并构造第二个选择框。
$("#type").change();
请参阅演示
当您加载页面并获得第二次选择的值时,只需调用以下代码
var val = $('#type').val();
$("#size").html(options[val]);
检查小提琴链接为您的解决方案
希望这能帮助