问题
I am using the jQuery UI autocomplete and I am attempting to limit the multiple results. Basically I'm building a PM system I am using the autocomplete for the to field. But I'm trying to limit the amount of people a single message can be sent to. So like limit the max selections to 25.
Is there any way to limit this? Also any ideas on a visual indicator that they have reached the max?
select: function( event, ui){
var terms = split( this.value );
if(terms.length <= 2)
{
// remove the current input
terms.pop();
// add the selected item
terms.push( ui.item.value );
// add placeholder to get the comma-and-space at the end
terms.push( "" );
this.value = terms.join( ", " );
return false;
}
else
{
$(this).effect("highlight", {}, 1000);
$(this).addClass("red");
$("#warnings").html("<span style='color:red;'>Max people reached</span>");
return false;
}
}
回答1:
That can be achieved real easily by listening events. You could make the color red for example by adding class and removing class to autocomplete. I think you can accomplish this yourself with a little bit of effort.
select: function( event, ui ) {
var terms = split( this.value );
if(terms.length <= 2) {
// remove the current input
terms.pop();
// add the selected item
terms.push( ui.item.value );
// add placeholder to get the comma-and-space at the end
terms.push( "" );
this.value = terms.join( ", " );
return false;
} else {
var last = terms.pop();
$(this).val(this.value.substr(0, this.value.length - last.length - 2)); // removes text from input
$(this).effect("highlight", {}, 1000);
$(this).addClass("red");
$("#warnings").html("<span style='color:red;'>Max people reached</span>");
return false;
}
}
P.S I also think one of these plugins could be suitable thanks to google:
https://github.com/loopj/jQuery-Tokenizing-Autocomplete-Plugin
Looks nice in my opinion:
Click link to view live demo.
http://net.tutsplus.com/tutorials/javascript-ajax/how-to-use-the-jquery-ui-autocomplete-widget/
- Facebook style JQuery autocomplete plugin
来源:https://stackoverflow.com/questions/4811740/jqueryui-autocomplete-limit-multiple-selections