2016-09-12 12 views
2

テーブルで同じデータを使用しないようにするにはどうすればよいですか?ここでjquery/javascriptのテーブルに重複するデータを追加しないようにするには?

コードです:

var a = 0; 
    $(document).on("change", "#txtInput",function(){ 
     var inputLength = this.value.length; 
     if (inputLength <= 9) { return; } 

     $("#contenido").append("<tr><td>" + this.value + "</td></tr>"); 
     $("p").html('Total Bianuales: ' + (++a)); 
    }); 
+0

?入力値重複? –

答えて

1

ストアあなたはすでに追加し、入力の値がすでに追加されている場合、していないことを再度追加しました値。あなたが追記データを複製する意味は何

var a = 0; 
var alreadyAdded = []; 
$(document).on("change", "#txtInput",function(){ 
    var inputLength = this.value.length; 
    if (inputLength <= 9) { return; } 
    if ($.inArray(this.value, alreadyAdded) !== -1) { return; } 

    $("#contenido").append("<tr><td>" + this.value + "</td></tr>"); 
    $("p").html('Total Bianuales: ' + (++a)); 
    alreadyAdded.push(this.value); 
}); 
+0

入力項目に入力することはできません。私はIDを書くことができますが、それはテーブルに追加されていないことを意味します。 –

+0

あなたは何を意味するのか分かりませんが、明確にすることはできますか? – Derek

+0

入力欄に入力すると何もしません。それは "それ自体を無効にする"のようなものです。しかし、問題は「alreadyAdded [] = this.value;」であることがわかりました。このコードを削除すると、正常に動作します。私はそれがどうやってそれに影響を与えるのではない。そして私の英語の人に申し訳ありません、私はスペイン語のスピーカーですxD –

0

基本的に、あなたは二度テーブルを参照し、すべての行をチェックする必要があります。ここでは例の抜粋:

//Populate table 
 
for(var i = 0; i<10; i++){ 
 
$('table tbody').append('<tr><td>Row '+i+'</td></tr>'); 
 
$('table tbody').append('<tr><td>Row '+i+'</td></tr>'); 
 
} 
 

 
//Go along the table twice and check. Remove if the same content. 
 
function cleanTable(){ 
 
    for(var i = 0; i<$('table tbody tr').length; i++){ 
 
     for(var j = 0; j<$('table tbody tr').length; j++){ 
 
     if($('table tbody tr').eq(i).html() == $('table tbody tr').eq(j).html() && i != j){ 
 
     $('table tbody tr').eq(j).remove(); 
 
     } 
 
    } 
 
    } 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button onClick="cleanTable()">Clean</button> 
 

 
<table> 
 
    <tbody> 
 
    </tbody> 
 
</table> 
 

 
<button onClick="cleanTable()">Clean</button>

+0

新しいボタンを追加しなくてもいいですか? –

+0

もちろん、ページのロード後にcleanTable()関数を呼び出すだけです。 – Treast

関連する問題