Je souhaite modifier l'espace réservé d'un menu déroulant créé par selectize.js lorsque le menu déroulant principal modifie sa sélection pour charger les options du menu déroulant dont l'espace réservé doit être modifié. Il n'existe aucune méthode pour le faire dans la documentation.
Je ne sais pas si la sélectivité continue de changer de code ou si tout le monde sur ce fil vient de fumer, mais toutes ces réponses semblent être fausses individuellement, mais si vous combinez les pièces correctes de chaque réponse, vous finissez par cela qui fonctionne pour moi.
var textHandler = function(name) { return function() { if(name == 'focus'){ jQuery("select#myid + .selectize-control").find("input:text").prop({"placeholder": ""}); } }; }; jQuery('#sf159_textsearchtextsearch').selectize({ closeAfterSelect: true, hideSelected : true, createOnBlur : true, openOnFocus : true, maxOptions : 10, persist : true, placeholder : "Neighborhood, Street, School, Zip, MLS", plugins : ['remove_button'], valueField : 'id', labelField : 'text', searchField : 'value', options : [], create : false, render : { option: function (item, escape) { //console.log(item); var address = ''; var keyword = ''; var tx = item.text.split(','); for (var i = 0, n = tx.length; i < n; i++) { address += '<span class="span4">' + escape(tx[i]) + '</span>'; } var template = '<div>' + '<div class="row-fluid"> ' + address + ' </div>' + '</div>'; return template; } }, load : searchHandler, onKeydown : keyHandler, onDelete : deleteHandler, onFocus : textHandler('focus'), });
Vous pouvez spécifier une clé d' placeholder
dans le cadre de l'objet d'options lors de l'initialisation. Je n'ai pas trouvé l'option dans la documentation et je n'ai trouvé que creuser le code.
//init selectize $(function() { $('select').selectize({ placeholder: 'Click here to select ...', }); });
Vous avez besoin de deux choses:
<option></option>
comme première balise d'option dans la sélection. placeholder
pour selectize
appel Vous pouvez spécifier un espace réservé pour select
éléments en ajoutant un élément d' option
vide à l'intérieur de la balise de sélection. Voici un exemple:
<select name="color" required> <option value=""> Select a color </option> <option value="1"> Lavender </option> <option value="2"> Eggplant </option> <option value="3"> Cool grey </option> <option value="4"> Bitter lemon </option> </select>
Assurez-vous d'utiliser une étiquette de select
pour selectize
.
J'avais le même problème, causé par l'utilisation d'une entrée à la place. selectize
travaillé aussi, mais l'attribut placeholder
n'a pas été affiché. Quand j'ai changé pour select
il a commencé à fonctionner
<select type="text" placeholder="Type words of the article..."></select>
$('select#my-dropdown + .selectize-control').find('.selectize-control-input').prop({'placeholder': 'Placeholder Text'});
Selectize.js créera une input
dessous de la select
. Cette input
aura la classe .selectize-control
.
Vous pouvez remplacer l' placeholder
de ce champ de input
par jQuery.
Vous pouvez faire quelque chose comme:
$(".selectize-control").attr('placeholder','Hello World!');
Si vous souhaitez un exemple pratique, j'ai besoin de plus d'informations sur votre code.
J'ai eu un problème similaire – ce qui était frustrant, c'est que je ferais quelque chose comme ça:
$("selectize-input input[placeholder]").attr('placeholder','Hello World!');
Ensuite, seulement après avoir changé la mise au point, cela rendrait mon nouveau texte d'espace réservé. Il s'avère que, pour une raison quelconque (probablement une bonne), la sélectivité applique une largeur à cette entrée.
Solution finale:
$(".selectize-input input[placeholder]").attr('placeholder','Hello World!'); $(".selectize-input input[placeholder]").attr("style", "width: 100%;");
Vous pouvez mettre à jour l'espace réservé en configurant selecttize.settings.placeholder puis en appelant selectize.updatePlaceholder () .
$(document).ready(function() { var s = $('#input-tags').selectize({ persist: false, createOnBlur: true, create: true, placeholder: 'start placeholder' })[0].selectize; $('#updatePlaceholder').click(function() { s.settings.placeholder = 'new placeholder'; s.updatePlaceholder(); }); });
<!DOCTYPE html> <html> <head> <script data-require="[email protected]" data-semver="3.1.1" src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> <link rel="stylesheet" href="style.css" /> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.12.4/css/selectize.css" /> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.12.4/css/selectize.default.css" /> <script src="https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.12.4/js/standalone/selectize.js"></script> <script src="script.js"></script> </head> <body> <h1>Selectize setting placeholder</h1> <input type="text" id="input-tags" value=""> <button id="updatePlaceholder">change</button> </body> </html>