2013-02-19 100 views
1

我想檢查數組值是否爲輸入值:cheched 3,alert (true) else alert (false)。我嘗試了以下js代碼,但不適合我。檢查一個值是否存在於數組輸入值中by jquery

如何解決?

DEMO:http://jsfiddle.net/VAwHR/4/

HTML:

<input value="3" type="text" id="seeid"> 
<div class="paginate"> 
    <input name="ch[]" type="checkbox" value="1" checked> 
    <input name="ch[]" type="checkbox" value="2"> 
    <input name="ch[]" type="checkbox" value="3" checked> 
    <input name="ch[]" type="checkbox" value="4"> 
</div> 
<input type="submit" class="sub"> 

JQUERY:

$('.sub').click(function(){ 
    var seeid = $('#seeid').val(); 
    var db = $('.paginate :checkbox:checked').map(function (i, n) { 
     return $(n).val(); 
    }).get(); 
    alert($.inArray(seeid, db)) 
}) 

回答

4

你有兩個錯誤。第一:

<input value="3" type="text" id="#seeid"> // id should be "seed" 

第二:

$.inArray(seeid, db) > 0 

應該

$.inArray(seeid, db) > -1 // or ~$.inArray(seeid, db) 

您的代碼將無法檢測值1爲例,因爲indexOf會在這種情況下返回0。

5

這裏是你有地方的問題3210

<input value="3" type="text" id="#seeid"> 

使用本

<input value="3" type="text" id="seeid"> 
+0

是的,這是一個錯字,但它仍然沒有工作對我來說:HTTP://jsfiddle.net/VAwHR/4 / – 2013-02-19 10:24:01

0
$('.sub').click(function(){ 
    var seeid = $('#seeid').val(); 

    var db = $('.paginate :checkbox:checked').map(function (i, n) { 
    return $(n).val(); 
    }).get(); 

    var flag; 
    if(flag = $.inArray(seeid, db) > -1){ 
    alert(flag); 
    } 
    else { 
    alert(flag); 
    } 
}) 

貼進撥弄這一點 - 它應該給你正確的真/假警報

相關問題