下拉菜单(选择)不突出显示所选=“已选择”选项

时间:2016-08-30 10:29:37

标签: javascript html forms

我正在构建一个搜索表单,但是在选中的“已选中”选项未突出显示的情况下会发生一些奇怪的事情。

然后使用javascript删除表单从数据库中提取数据和重复数据(见下文)。该网站使用ExpressionEngine构建,表单使用Solspace Super Search。

奇怪的是,对于只显示一个结果的选项,例如'Andover',下拉选择'Andover',但如果找到多个结果(如Bournemouth),则下拉列表将恢复为第一个选项(All (而不是伯恩茅斯),即使伯恩茅斯选项功能选择=“已选择”。

以下是输出代码的示例,这里有什么想法?

<select name="club_feed_town" id="locationList">
    <option value="">All Locations</option>
    <option value="Andover">Andover</option>
    <option value="Bishops waltham">Bishops Waltham</option>
    <option value="Blandford forum">Blandford Forum</option>
    <option value="Boscombe">Boscombe</option>
    <option selected="selected" value="Bournemouth">Bournemouth</option>
</select>

以下是删除重复项的脚本,如果有帮助的话:

$(document).ready(function() {
  var optionValues = [];
  var lastRemoved = null;
  $('#locationList option').each(function(){
     if($.inArray(this.value, optionValues) >-1){
        $(this).remove();
        // remember the very last removed one
        lastRemoved = $(this);
     }else{
        optionValues.push(this.value);
     }
  });
  // after removing duplicates, add the very last removed one back to the list
  $('#locationList').append(lastRemoved);
});

一如既往,欢迎任何想法或建议。

提前致谢,

汤姆

1 个答案:

答案 0 :(得分:0)

我刚刚添加了一些js代码以使其正常工作。试试吧。

$(document).ready(function() {
  var optionValues = [];
  var lastRemoved = null;
  $('#locationList option').each(function(i){
     if($.inArray(this.value, optionValues) >-1){
       //////////////////////add in code///////////////////////////////
        if($(this).prop('selected')){
          $(this).removeAttr("selected");
        }
       $('#locationList').prop('selectedIndex',i-1);
       //////////////////////end of my code//////////////////////////////
       // remember the very last removed one
       $(this).remove();
       lastRemoved = $(this);
     }else{
        optionValues.push(this.value);
     }
  });
  // after removing duplicates, add the very last removed one back to the list
  $('#locationList').append(lastRemoved);
});
相关问题