javascript - count number of multiple selected in jquery autocomplete field -
in jquery's autocomplete multiple value, try add counter selected values. should updated immediately, when chose/add 1 more values.
both codes of workaround not working.
1
function checkreceiver() { var str = document.forms[0].tags.value, regex = /417/igm, count = str.match(regex), count = (count) ? count.length : 0; console.log(count); document.forms[0].receiver.value=count; }
2
var str = document.forms[0].tags.value; count = (str.match(/417/g) || []).length; document.forms[0].receiver.value=count;
is there trigger, can use in autocomplete function directly?
you quite close working solution. propose following changes:
instead of testing regex, split on commas: plugin using puts comma automatically after each new selected value. therefore, can count number of values number of commas. example:
function checkreceiver() { var str = document.forms[0].tags.value; var words = str.split(','); // split on commas var count = words.length - 1; // correction first element document.forms[0].receiver.value = count; }
alternatively, split on spaces:var words = str.split(' ');
, if think users might delete last comma. splitting on spaces assumes @ least space between 2 values.
make sure function called on change: make sure checkreceiver()
function called @ possible change, need make sure captures events. 1 way of capturing events in <input>
element forcing check upon possible change. example (method comments in answer):
<input type="text" name="numbers" id="tags" class="input_text clearable" size="50" onchange="checkreceiver();" onkeypress="this.onchange();" onpaste="this.onchange();" oninput="this.onchange();" placeholder="choose receiver" tabindex="1" value="" autofocus>
additionally, want call checkreceiver()
when autocomplete list closes. therefore:
.autocomplete({ close: function(event, ui) { checkreceiver(); // call checkreceiver() upon close }, ...
with these changes in place, program works expected. see this jsfiddle.
i can recommend take @ jquery tokeninput designed multiple-input autocomplete text entries, , works in intuitive manner. example, tokeninput can use onadd , ondelete callbacks (see here). these callbacks, can increase (onadd) , decrease (ondelete) counter variable.
Comments
Post a Comment