文本输入值与JQuery的不区分大小写的比较

时间:2013-05-02 12:11:13

标签: jquery if-statement selector

我已经查看了与在JQuery中编写自定义选择器相关的答案(例如:Writing jQuery selector case-insensitive version),但我仍不清楚自定义选择器是否是解决我问题的最佳方法。

我想从文本框中获取输入,并将其与已知术语列表进行比较。我希望比较不区分大小写。这是我想要做的:

 $('#query').change(function() {   
    if ($("#query").val() == "kittens") {
       $('#change').text("kittens")
    }
    else if ($("#query").val() == "puppies") {
       $('#change').text("puppies")
    }
    else {
       $('#change').text("neither kittens nor puppies")
    }
 });

这是一个JSFiddle:http://jsfiddle.net/XcbMQ/

我希望“小猫”,“小猫”和“小猫”都符合小猫的条件。我不清楚自定义选择器是最好的方法,或者如果我可以使用.is()或类似的。如果自定义选择器是最佳方式,我将如何/在何处将其集成到我的代码中?

更新:

这是一个带有工作代码的JSFiddle,感谢dystroy: http://jsfiddle.net/XcbMQ/2/

2 个答案:

答案 0 :(得分:4)

你可以做到

if ($("#query").val().toLowerCase() == "kittens") {

答案 1 :(得分:2)

这是一个使用switch而不是多个if语句的版本。做同样的工作,但有点整洁......

$('#change').text("nothing entered yet")

$('#query').change(function() {   
    var text = $(this).val().toLowerCase();
    switch (text) {
        case "kittens":
            $('#change').text("kittens");
            break;
        case "puppies":
            $('#change').text("puppies");
            break;
        default:
            $('#change').text("neither kittens nor puppies");    
            break;
    }
});

这是一个更新的小提琴......

http://jsfiddle.net/XcbMQ/3/