0

我一直在尝试通过使用 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"); 
    }
});





});

但是,它似乎不起作用。我检查了我的 id 和值,但似乎没有任何效果。我正在使用 jquery 1.9,我读过需要使用 prop。请让我知道我做错了什么,谢谢!

这是一个活生生的例子:http ://www.lcbcchurch.com/new-site/events

4

1 回答 1

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'));
于 2013-04-17T20:27:46.653 回答