Domanda jQuery - Aggiungi un valore a un INPUT, mantenendolo un elenco delimitato da virgola


Ho un input come segue:

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

Mi piacerebbe poter aggiungere un valore all'input, in momenti diversi:

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

risultati in:

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

Ma poi facendo:

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

risultati in:

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

Dove vorrei quanto segue:

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

come posso aggiungere valori quando il valore è vuoto e quando il valore non è vuoto con un elenco delimitato da virgole?

Grazie


14
2017-12-02 19:39


origine


risposte:


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

MODIFICARE: Come @mkoryak notato, sto facendo una negazione inutile di val nell'operatore condizionale. Potrebbe essere riscritto senza il ! come:

(val ? ', ' : '')

39
2017-12-02 19:42



Basta aggiungere un condizionale quando aggiungi il valore al campo.

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

9
2017-12-02 19:42



Append non funzionerà per l'input. Ma puoi usare:

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

0
2017-11-07 15:36



Io credo .append() la funzione è esattamente per questo scopo. Ho appena provato:

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

per aggiungere valori a un campo. Questo funziona e "attachment-uuids" è popolato con CSV, come richiesto.


-4
2018-01-13 09:11