Korzystając z JQuery, próbuję ustawić opcję wybraną w elemencie "wybierz" na podstawie ciągu zapytania.JavaScript i JQuery, jak sprawdzić, czy element opcji istnieje w select?
To pytanie jest podobne do this, ale nadal muszę wiedzieć, jak sprawdzić, czy element istnieje przed dokonaniem wyboru, w przeciwnym razie strona będzie odświeżać się w sposób ciągły (patrz warunek wyjścia poniżej).
Pobieranie łańcucha zapytania odbywa się za pomocą funkcji getParameterByName i działa poprawnie.
Obecna implementacja poniżej:
function setSelectedItem(selectName, itemToSelect) {
///<summary>Selects an HTML option element inside a HTML select element based on the value from the query string.</summary>
///<param name="selectName" type="string">The partial name of the HTML select in which 'itemToSelect' must be selected</param>
///<param name="itemToSelect" type="string">The name of the query string parameter which value is the of the 'option' element to select.</param>
//If an items has already been selected, return
if ($('select[name*=' + selectName + ']')[0].selectedIndex != 0) return;
//Fetches the value from the query string; if empty, returns
var valueToSelect = getParameterByName(itemToSelect);
if (valueToSelect == "") return;
//Fecthes the HTML select object
var selectObject = $('select[name*=' + selectName + ']');
//HERE how to check if 'valueToSelect' does not exist and return?
selectObject.val(valueToSelect).attr('selected', 'selected').change();
}
Aktualizacja: Rozwiązanie który pracował był:
//Checks if the option exists, and returns otherwise
if (!selectObject.find('option[value=' + valueToSelect + ']').length)
return;
ustawienie wartości z '.val()' wybierze ten element, dlaczego więc używasz również '.attr ('selected', 'selected')'? – nnnnnn
Zaktualizuję przykład, jeśli to zadziała, dziękuję – haschdl