为什么`keyup`和`if`在我的代码中不起作用?

时间:2011-10-14 15:15:57

标签: javascript jquery

我希望如果输入的值等于其中一个单词ed Or d Or i Or ei已完成执行操作。我无法在首次运行页面中更改值输入value="ed"。我该怎么办?

示例: http://jsfiddle.net/ZsYdY/3/

<input type="text" value="ed">
<div class="code"></div>


function ticket_check() {
    //var val = 'ticket_code=' + $('.ticket_code').val();
    var input_val = $('input').val();
    if (input_val == 'ed Or d Or i Or ei') {
        $('.code').empty().hide().fadeIn('slow').append('It is ok');
    } else {

            $('.code').fadeOut('slow', function () {
                $(this).hide().fadeIn('slow').append('It is not ok');
            })

    }
}

$('.input').live('keyup change', function () {
    ticket_check();
    var input_val = $('input').val();
    if (input_val == 'ed Or d Or i Or ei') {
        $('.code').fadeOut('slow', function () {
            $(this).hide().fadeIn('slow').append('It is not oooooooookkkkkkkkk');
        })
    }
});
ticket_check()

3 个答案:

答案 0 :(得分:1)

使用以下代码检查输入是否等于给定建议之一:

//Case-sensitive
'ed d i ei'.split(' ').indexOf(input_val) != -1

//Alternatively, case-sensitive:
['ed', 'd', 'i', 'ei'].indexOf(input_val) != -1;

//Case-insensitive:
'ed d i ei'.split(' ').indexOf(input_val.toLowerCase()) != -1

此示例背后的概念是:“在有效值列表中拆分字符串检查当前值是否出现”。 例如:

function ticket_check() {
    //var val = 'ticket_code=' + $('.ticket_code').val();
    var valid_values = 'ed d i ei'.split(' ');
    var input_val = $('input').val().toLowerCase();
    if (valid_values.indexOf(input_val) != -1) {
        //Rest of code

答案 1 :(得分:1)

if (input_val == 'ed Or d Or i Or ei') {

需要:

if (input_val == 'ed' || input_val == 'd' || input_val == 'i' || input_val == 'ei') {

$('.input')在您的示例中应为$('input')

Updated Example

答案 2 :(得分:1)

两件事....你的输入上没有类'.input'。所以这一行应该是这样的

$('input').live('keyup change', function () { 

此外,正如其他人所说......你或者搞砸了。看看上面的答案之一。