2013-11-06 2 views
-2

У меня есть два раскрывающихся списка, Город и Страна. Выпадающий список города заполняется динамически на основе выбора выпадающего списка Страны. Поэтому я пытаюсь проверить раскрывающийся список City, чтобы убедиться, что город выбран.Добавление правила JQuery для динамически добавленных опций выбора

Ниже приведена функция appendCity, которую я использую для добавления элементов в раскрывающийся список City. К сожалению, он, похоже, не работает, так кто-то, пожалуйста, проверьте его и скажите мне, что мне здесь не хватает? и как это исправить?

function appendCity(id,cityName){ 
    $('#city').append("<option id='"+id+"'>" + cityName + "</option>");   
} 

JS код отвечает за добавление данных в городе раскрывающегося списка:

function loadCities(citiesLst){ 
     clearCities(); 
     var arr=citiesLst.split(","); 
     for(var i=0;i<arr.length;i++){ 
      var cityArr=arr[i].split("#"); 
      appendCity(cityArr[0],cityArr[1]); 
     } 

     $('#city').rules("add", { required:true, min:1 }); 
    } 

    function clearCities(){ 
     $('#city').find('option').remove(); 
    } 

    function appendCity(id,cityName){ 
     $('#city').append("<option id='"+id+"'>" + cityName + "</option>"); 
    } 

HTML:

<select id ="country" name="country" onchange="loadCities()"> 
    <option value="0" selected="selected">--select--</option> 
     <c:forEach var="countrylst" items="${countriesList}"> 
     <option value="${countrylst.id}">${countrylst.countryName}</option> 
     </c:forEach> 
    </select>    

    <select id="city" name="city"> 
    <option value="0" selected="selected">--select--</option> 
    </select>  

ответ

-1

изменение

$('#city option[id='+id+']').rules("add", { required:true, min:1 }); 

в

$('#city').rules("add", { required:true, min:1 }); 

и вывести его из функции

EDIT

Добавить правило проверки после цикла в loadCities функции

function loadCities(citiesLst){ 
    clearCities(); 
    var arr=citiesLst.split(","); 
    for(var i=0;i<arr.length;i++){ 
     var cityArr=arr[i].split("#"); 
     appendCity(cityArr[0],cityArr[1]); 
    } 
    // HERE 
    $('#city').rules("add", { required:true, min:1 }); 
} 
+0

, где я должен поместить его тогда? Если я поместил его под document.ready, это не сработает, так где еще я могу его разместить? – MChan

+0

да в 'document.ready' .. с вашим кодом кажется, что' # city' уже добавлен до dom – zzlalani

+0

вы вызываете 'appendCity' в цикле? – zzlalani

Смежные вопросы