2011-10-14 96 views
0

我想如果输入的值等于ed Or d Or i Or ei之一的话完成了它的操作。我无法在首次运行页面更改值输入value="ed"。我该怎么办?为什么`keyup`和`if`在我的代码中不起作用?

例子: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() 

回答

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

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 
+0

好的答案,除了我不认为'或'应该是在该字符串。我认为这是OP尝试一些布尔逻辑。 – Jamiec

+0

@Jamiec我删除了OR。分隔符基本上可以是任何内容,以防有效匹配包含空格。 –

1

两件事情....你没有按输入这个班上没有'输入'。所以这条线看起来应该是这样的

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

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

相关问题