2012-05-30 5 views
0

J'ai 4 menus de sélection dépendants dynamiquement. Les menus correspondent à l'état, au comté, à la région, au quartier. La dépendance dynamique est obtenue via un script jQuery. Ce que je veux accomplir est de faire en sorte que les menus se souviennent de la dernière option sélectionnée par un utilisateur pour chaque menu. J'ai donc pensé que si je pouvais saisir les paramètres d'url qui feraient l'affaire. Je modifié le script de cette façon ....mémorisation d'une option de menu de sélection avec jquery

getCounty: function (results) { 
    if(!results) return; 
    var allCounties = $("<option value=\"All\">All Counties </option>"); 
    counties.html(results); 
    counties.prepend(allCounties); 
    var w = $.query.get("county_id"); 
    if(w) { 
     counties.val(w).attr('selected', true); 
    } else { 
     counties.val("All").attr('selected', true); 
    } 

est la fonction $.query.get correcte? Y a-t-il autre chose qui ne va pas avec mon code? Je dois admettre que je ne suis pas un expert ... Le code jQuery fonctionne très bien si je tape

counties.val(3).attr('selected',true) 

La troisième option du menu de sélection se sélectionné.

je résolu le problème en utilisant

function getUrlVars() { 
    var vars = {}; 
    var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) { 
    vars[key] = value; 
    }); 
    return vars; 
} 

Et après

var county = getUrlVars()["county_id"]; 

    if (county)  
    counties.val(county).attr('selected',true); 
    else 
     counties.val("All").attr('selected',true); 
+0

Pourquoi utilisez-vous 'attr ('selected', true)' pour? – zerkms

Répondre

1

Je ne sais pas ce qui est "county_id", mais je supose est un autre menu, alors peut-être mieux:

getCounty: function (results) { 
if(!results) return; 
var allCounties = $("<option value=\"All\">All Counties </option>"); 
counties.html(results); 
counties.append(allCounties); ///The all option first 
var w = $('#county_id :selected').val(); ///w is the value of option selected of other combo 
counties.find('option[value='+w+']').attr('selected', 'selected'); ///this find a option with value W, if exist mark like selected 
} 
+1

Je pensais que puisque j'utilise une fonction .get il serait clair que je parle d'un paramètre url (La requête exécutée la dernière fois que l'utilisateur a cherché quelque chose). Quoi qu'il en soit, j'ai trouvé une fonction javascript traditionnelle qui obtient les paramètres de l'url et résolu le problème. Merci beaucoup d'avoir pris le temps de me répondre. Avec votre réponse j'ai enrichi mes connaissances jquery! – user926652

Questions connexes