[英]Dropdown menu (select) not highlighting selected=“selected” option
我正在构建搜索表单,但是在执行select =“ selected”选项时未显示出一些奇怪的地方。
然后使用javascript(如下所示)删除表单从数据库中提取的数据和重复项。 该网站使用ExpressionEngine构建,表单使用Solspace Super Search。
奇怪的是,对于仅显示一个结果(例如“ Andover”)的选项,下拉列表选择“ Andover”,但是如果找到多个结果(例如伯恩茅斯),则下拉列表将还原为第一个选项(所有位置)即使伯恩茅斯选项的功能为selected =“ selected”,也比伯恩茅斯高。
这是正在输出的代码的示例,这里有什么想法吗?
<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);
});
一如既往,欢迎任何想法或建议。
提前致谢,
汤姆
我只是在您的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);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.