【问题标题】:Option not selecting automatically when going back返回时选项不自动选择
【发布时间】:2015-10-11 13:53:31
【问题描述】:

如果这个问题已经得到解答,我深表歉意。我仍然在学习。我已经搜索并无法找到适合我的解决方案。我找到了这个:

Firefox ignores option selected="selected"

但添加 autocomplete="off" 对我不起作用。

用户应该能够选择一个选项,提交,然后当他们返回时,他们选择的选项可用。这目前适用于 Safari、Chrome 和 Opera,但不适用于 Firefox 或 IE。选择工作正常,但当他们返回时它不会自动选择他们的选择。

我在同一页面上有另一个选择,但似乎没有相同的问题。

这是 HTML:

<div class="col-sm-2 col-md-2">
    <div class="form-group">
    <label for="custom_1_units">Units</label>
        <select class="form-control" id="custom_1_units" name="custom_1_units" value="<?php echo"_SESSION['Custom']['custom_1_units'];" ?>" autocomplete="off">
            <option value="pages">pages</option>
            <option value="lessons">lessons</option>
            <option value="activities">activities</option>
            <option value="units">units</option>
            <option value="projects">projects</option>
        </select>
    </div>  
</div>

这里是 PHP/Javascript。它在一个 .php 文件中:

<?php echo "var cus_1_units ='" . $_SESSION['Custom']['custom_1_units'] . "';"; ?>

$("#custom_1_units").each(function() {
if($(this).text() == cus_1_units) {
    $(this).attr('selected', 'selected');            
    }                        
});

【问题讨论】:

  • 4 年前的错误确保仍然适用 - 必须测试
  • 您正在将selected 属性应用于&lt;select&gt; 元素。但是,selected 属性需要应用于所需的&lt;option&gt; 元素。您还将 jQuery .each() 附加到针对单个元素的选择器。这是没有意义的,因为 .each() 会遍历多个元素,因此需要附加到同时针对多个元素的选择器。

标签: javascript php jquery html


【解决方案1】:

您的选项元素的值与元素中的文本匹配,因此您可能只需设置选择元素的值即可:

$("#custom_1_units").val(cus_1_units);

【讨论】:

    【解决方案2】:

    未选择所需选项,因为您的循环不正确。它目前循环通过一个元素(?),但我认为你希望它循环通过它的孩子。将循环更改为以下内容:

    $("#custom_1_units").children("option").each(function() {
    

    【讨论】:

    • 我对此表示怀疑,因为我基本上只是从同一页面上的另一个选择中复制并粘贴了代码,并且刚刚更新了 id。我不能与结果争论。我对其进行了测试,它在我尝试过的每个浏览器中都通过了。
    猜你喜欢
    • 1970-01-01
    • 2020-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-18
    • 1970-01-01
    相关资源
    最近更新 更多