我一直试图通过使用jquery来改变选择输入。当用户点击搜索字段时,我希望更改选择字段。这是我用来做的代码:
$(document).ready(function() {
$('#cat-filter').change( function() {
var filterText = $(this).val().toLowerCase();
if(filterText == 'all events'){
$('a.events').css("display", "inline");
} else if(filterText != ''){
$('a.events:not([categories~="'+ filterText +'"])').css("display", "none");
$('a.events[categories~="'+ filterText +'"]').css("display", "inline");
} else {
$('a.events').css("display", "inline");
}
});
// --------------- THIS IS THE CODE ----------------
$('#search-input').focus( function() {
$(this).val('');
$('a.events').css("display", "inline");
$("select option:contains(1)").prop('selected', true);
});
//--------------------------------------------------
$('#search-input').blur( function() {
$(this).val('Search Events');
});
$('#search-input').keyup(function (){
textField = null;
var textField = $(this).val().toLowerCase();
if (textField != ""){
$('a.events:not([categories*="'+textField+'"])').css("display", "none");
$('a.events[categories*="'+textField+'"]').css("display", "inline");
} else {
$('a.events').css("display", "inline");
}
});
});
然而它似乎不起作用。我检查了我的身份和价值观,但似乎没有任何效果。我正在使用jquery 1.9,我读过需要使用prop。请让我知道我做错了什么,谢谢!
答案 0 :(得分:1)
问题不在于.prop
,而是因为您的选项中没有任何选项在其文字中包含 1 。
如果您想定位第一个(,其值为1 ),请使用
$('select option[value="1"]').prop('selected', true);
由于您使用统一插件,因此您还必须发布更新
var element = $('select option[value="1"]').prop('selected', true);
$.uniform.update(element.closest('select'));