【问题标题】:keep selected option displayed when options based on another select在基于另一个SELECT的选项时显示选定选项
【发布时间】:2016-06-24 18:23:37
【问题描述】:

我有一个带有两个独立中可用的

虽然第一个中的选中值总是重置为“--select one--”。我希望第二个选定的值保持显示并保持不变,直到手动更改或第一个 更改(这会更改第二个可用选项)。

我已经能够通过向选择添加名称来捕获第二个选定值的值: (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...") {

似乎没有任何效果,第二个

我很想得到一些帮助来告诉我哪里出错了?!谢谢!

【问题讨论】:

  • if ($CSsize != "0" ),选择的选项将应用于所有选项不是吗?你不认为它应该应用于单一选项吗?您还需要考虑期权的价值...

标签: javascript php jquery html


【解决方案1】:

我可以在提交后捕获第二个

如果我理解正确,您可以使用以下script 区域中的捕获结果生成optionselected 属性

"<option>item1...</option><option <?php echo .... 'selected'; ?> >item1...</option>"...

如果不能选择使用php 进行.js file 操作,则可以在select 元素中使用data 属性并通过.data() 检索它。

然后在.ready() 末尾调用$("#type").change() 将执行处理程序并照常构造第二个选择框。

 $("#type").change();

See Demo

【讨论】:

  • 优秀。稍加修改,就可以完美地工作。如果这对将来的某人有帮助,最终的“完整”代码如下:
【解决方案2】:

当您加载页面并获得第二次选择的值时,只需调用以下代码

var val = $('#type').val();
$("#size").html(options[val]);

Check the fiddle link for you solution

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-13
    • 2019-12-22
    • 1970-01-01
    • 2013-09-16
    • 2013-12-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多