2017-10-20 54 views
0

Je suis en train de filtrer un champ de sélection en fonction de la sélection précédente, mais il ne fonctionne pas et il me donne une erreur:erreur en essayant de filtrer un champ

Uncaught Error: Syntax error, unrecognized expression: optgroup[label=Door-to-Door Sales ]

<select id="affiliation" name="affiliate[industry]"> 
    <option value="">Industry</option> 
    <option value="3">Auto Sales</option> 
    <option value="1">Door-to-Door Sales</option> 
    <option value="10">Independent</option> 
    <option value="11">Mortgage Officer</option> 
    <option value="12">Real Estate Agent</option> 
    <option value="13">Seminar Services</option> 
    </select> 

    <select id="companies" name="affiliate[parent_affiliate_id]"> 
    <option value="">Company</option> 
    <optgroup label="Auto Sales"></optgroup> 
    <optgroup label="Door-to-Door Sales "> 
    <option value="3">Vivint Smart Home</option> 
    <option value="4">Vivint Solar</option> 
    </optgroup> 
    <optgroup label="Independent"></optgroup> 
    <optgroup label="Mortgage Officer"></optgroup> 
    <optgroup label="Real Estate Agent"></optgroup> 
    <optgroup label="Seminar Services"> 
    <option value="5">RoryRicord.com</option> 
    </optgroup> 
    </select> 

Le jQuery je suis est basé sur ce tutoriel https://www.rubyplus.com/articles/3691-Dynamic-Select-Menus-in-Rails-5

jQuery(function() { 
    var companies; 
    companies = $('#companies').html(); 
    console.log(companies); 
    return $('#affiliation').change(function() { 
     var industry, options; 
     industry = $('#affiliation :selected').text(); 
     options = $(companies).filter("optgroup[label=" + industry + "]").html(); 
     console.log(options); 
     if (options) { 
      return $('#companies').html(options); 
     } else { 
      return $('#companies').empty(); 
     } 
    }); 
}); 

Répondre

0

Je suppose qu'il manquait les guillemets doubles. donc je change les guillemets doubles aux guillemets simples et ai ajouté les doubles guillemets dans l'après [et avant]

options = $(companies).filter('optgroup[label="' + industry + '"]').html(); 
0

Il semble que votre navigateur est d'avoir du mal à rendre le jquery actuel. essayer

options = $(companies).filter("optgroup<label=" + industry + ">").html() 
+0

Cela n'a pas fonctionné. J'inspecte et dit 'à HTMLSelectElement. (VM3376 select-button.js: 8) 'serait-ce que je me suis trompé avec l'un des noms et il ne sait pas quoi changer? – Allan