J'utilise jQuery autocomplete et j'obtiens les suggestions de saisie semi-automatique. Je veux activer le bouton de soumission si l'utilisateur entre le nom abrégé correct (c'est-à-dire les options ['valeur']) nom dans l'entrée. L'entrée HTML (index.php):Activer le bouton Envoyer si l'utilisateur entre la chaîne correcte
<input class="form-control typeahead" id="autocomplete" name="autocomplete" placeholder="COMPANY NAME" type="text" />
<div id="res"></div>
<button type="button" class="form-control btn btn-success" id="success" disabled>SUBMIT</button>
et la logique pour permettre le bouton soumettre (index.php):
$("#res").click(function(){
$("#success").prop("disabled", false);
});
$("#autocomplete").keyup(function(){
if (!($('.autocomplete-suggestions').is(':visible')) && $('#autocomplete').val() != '' && options.hasOwnProperty($(this).val())) {
$("#success").prop("disabled", false);
}else {
$("#success").prop("disabled", true);
}
});
JQuery fonction autocomplete (de search.js):
var options;
$(function(){
options = [{ value: "WIPRO", data: "Wipro ltd" },{ value: "TCS", data: "Tata consultancy serv lt" },{ value: "INFY", data: "Infosys limited" }];
$('#autocomplete').autocomplete({
lookup: options,
appendTo: '#res',
});
});
L'erreur que j'obtiens dans la console est: ReferenceError: les options ne sont pas définies. Je suis nouveau à cela, quelqu'un peut-il s'il vous plaît aider à résoudre ce problème?
Note: Le fichier search.js est inclus dans index.php
Merci pour la réponse. J'ai ajouté ce code dans index.php, mais je reçois toujours l'erreur: ReferenceError: les options ne sont pas définies. Je pense que je ne peux pas accéder à la variable d'options (qui est déclarée dans search.js) d'ici. pouvez-vous me dire comment puis-je y accéder? – Soumyajit
@SoumyajitGorai Je suppose que vous avez défini la variable d'options dans le fichier search.js dans une autre fonction '$ (document) .ready'. Dans ce cas, vous ne pouvez pas accéder aux options de la fonction de rappel '$ (document) .ready' dans un fichier différent. Mise à jour de ma réponse avec le problème de portée. – sbr
Merci @sbr. Je peux y accéder maintenant mais le bouton n'est pas activé sur la bonne entrée. Mon code actuel ressemble à: '$ ('# autocomplete'). Keyup (function() { if (estValidUserInput ($ ('# autocomplete') .val())) { console.log ('apparié') ; $ ('# succès) removeAttr ('handicapé'). } else { $ ('# succès') prop ('désactivé', true);. } }); ' ' La fonction isValidUserInput' fonctionne comme le charme, mais le bouton reste désactivé. – Soumyajit