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

最佳答案

问题不在于.prop,而是因为您的选项中没有一个包含1。

如果要定位第一个(其值为1),请使用

$('select option[value="1"]').prop('selected', true);


由于您使用统一插件,因此您还必须发布更新,因此

var element = $('select option[value="1"]').prop('selected', true);
$.uniform.update(element.closest('select'));

关于jquery - 用jQuery更改选择输入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16069536/

10-11 22:12
查看更多