2011-10-14 136 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() { 

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

相關問題