2010-12-02 48 views
14

我有一個輸入類似如下:jQuery的 - 附加將值輸入,保持一個逗號分隔的列表

<input type="hidden" id="attachment-uuids" value=""> 

我希望能夠將值追加到輸入,在不同的時間:

$('#attachment-uuids).val('55555'); 

結果:

<input type="hidden" id="attachment-uuids" value="55555"> 

但後來做的:

$('#attachment-uuids).val('66666'); 

結果:

<input type="hidden" id="attachment-uuids" value="66666"> 

在哪裏,我想以下幾點:

<input type="hidden" id="attachment-uuids" value="55555, 66666"> 

我怎麼可以追加值時,該值是空的,當值不爲空用逗號分隔列表?

謝謝

+0

如果該值已在列表中,該怎麼辦? – 2010-12-02 19:41:12

+0

@尼克很好的問題,這應該永遠不會發生,但如果它確實我可以在後端照顧。 – AnApprentice 2010-12-02 19:43:18

回答

38
$('#attachment-uuids').val(function(i,val) { 
    return val + (!val ? '' : ', ') + '66666'; 
}); 

編輯:作爲@mkoryak指出的,我做的val不必要的否定在有條件的經營者。它可能沒有!作爲被改寫:

(val ? ', ' : '') 
9

只需在將值添加到字段時添加條件。

var cur_val = $('#attachment-uuids').val(); 
if(cur_val) 
    $('#attachment-uuids').val(cur_val + "," + new_val); 
else 
    $('#attachment-uuids').val(new_val); 
-4

我相信.append()功能正是爲了這個目的。我剛剛嘗試過:

$("#attachment-uuids").append(new_val); 

將值附加到字段。根據需要,此工作和「附件uuids」填充CSV。

0

追加不適用於輸入。 但您可以使用:

$("#txt1").get(0).value+="+";