あなたの例では、3 つの入力ボックスがあるため、3 つの入力のみを許可しています。これらの入力ボックスのいずれかがタグを変更すると、スパンに転送されます。
入力の数に関係なく、複数のエントリを許可したいようです。以下のフィドルなどの簡単なものを試すことができます。
http://jsfiddle.net/K2g4z/
HTML:
<div>
<strong>Enter your tag and click add</strong>
<br/>
<input type="text" id="tagEntry" />
<button id="tagAdd">Add</button>
</div>
<div>
<strong>Entered Tags</strong>
<br/>
<input type="text" id="tagsEntered" />
</div>
Javascript:
var tags = [];
$(function() {
$('#tagAdd').click(function(){
//get the tag value and trim the spaces
var tVal = $('#tagEntry').val().trim();
if(tVal == '')
return;
//reset the entry box
$('#tagEntry').val('');
//verify tag not already saved
for(var i=0;i<tags.length;i++)
if(tags[i] == tVal)
return;
//add the tag to the array
tags.push(tVal);
//set the tags entry box
$('#tagsEntered').val(tags.join(', '));
});
});
アップデート:
JSFiddle リンクhttp://jsfiddle.net/K2g4z/1/は、必要な数の複数入力の使用をサポートするようになりました。要素 ID を選択する代わりにこれを実現するために、クラス名にバインドします。次の Html を指定します。
<div>
<strong>Enter your tag and click add</strong>
<br/>
<strong>Tag 1</strong>
<input type="text" id="tagEntry" class="tagEntry" />
<br/>
<strong>Tag 2</strong>
<input type="text" class="tagEntry" />
<br/>
<strong>Tag 3</strong>
<input type="text" class="tagEntry" />
<br/>
<strong>Tag 4</strong>
<input type="text" class="tagEntry" />
<br/>
<strong>Tag 5</strong>
<input type="text" class="tagEntry" />
</div>
<div>
<strong>Entered Tags</strong>
<br/>
<input type="text" id="tagsEntered" />
</div>
すべてのタグ入力ボックスにはクラスがあり、tagEntry
このクラスがセレクターになります。次の JS を使用すると、次のクラスを持つすべてのタグにぼかしイベントをバインドできますtagEntry.
。これにより、入力が変更されるたびにタグ ボックスが更新されます。
var tags = [];
$(function() {
$('.tagEntry').blur(function(){
//get the tag value and trim the spaces
var tVal = $(this).val().trim();
if(tVal == '')
return;
//reset the entry box
$(this).val('');
//verify tag not already saved
for(var i=0;i<tags.length;i++)
if(tags[i] == tVal)
return;
//add the tag to the array
tags.push(tVal);
//set the tags entry box
$('#tagsEntered').val(tags.join(', '));
});
});
ハンドラーがすべての入力にバインドされていることがわかるように、いずれかの入力が blur イベントを受け取ると、タグを抽出するメソッドが実行されます。