2010-12-02 16 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+="+";