2015-07-03 5 views
0

Я с многократным список флажок, выберите страну, как показано ниже: enter image description hereJQuery мобильного динамически проверить несколько флажков

У меня массив с несколькими значениями. Теперь, какие значения из массива существуют в selectbox, мне нужно проверить то же самое динамически. Для которых я использую:

$.each(myarray, function(key, value) { 
    $('#Country option[value="'+value+'"]').attr('checked',true); 
}); 
$('#Country').checkboxradio('refresh'); 

Но я не могу установить эти флажки.

FIDDLE

+0

Пожалуйста, проверьте jsFiddle на http://jsfiddle.net/s3sLhbdn/ – TechMech

+0

работает на моем iPhone: http://fiddle.jshell.net/s3sLhbdn/show/ легкий/ – mplungjan

ответ

1

Путь JQuery мобильных работ является то, что он в основном использует селекты/опционные элементы, чтобы создать свой собственный список и этот список является тот, который мы видим в вашем скриншоте. Список не использует фактические флажки, он использует классы .ui-checkbox-on и .ui-checkbox-off для имитации выбора элемента.

Таким образом, фрагмент кода, который я сделал ранее, получает текст (названия стран) нужных вам параметров на основе значений, представленных в первом массиве, а затем использует его для добавления необходимых классов к ссылкам, которые содержат текст стран.

var myarray = ["4","248"]; 

$(myarray).each(function(key, value){ //for each element in array 
    var textarray = [$('option[value="4"]').text(), $('option[value="248"]').text()]; //get the text of each option based on it's value (you have to make this dynamic, I hard coded this) and put it in an array 

    $('#Country-listbox ul li').find('a:contains("' + textarray[key] +'")').addClass('ui-checkbox-on').removeClass('ui-checkbox-off'); //get the link that contains the text we want (which is in the array we made before) and add the class that checks the box and remove the class that takes the check off 

}); 

Страна-ListBox это название DIV, который содержит список, JQuery создает на основе ваших опций/выбирает. Он называет div так, как он работает, на основе идентификатора вашего элемента select.

0

Я знаю, что мой ответ задерживается, но это может вам помочь.

Вашему массиву может понравиться {"foo1": "india", "foo2": "Афганистан", "foo3": "Албания"};

$(document).ready(function(){ 
    var myid,myvalue; 
    var object={"foo1":"india","foo2":"Afghanistan","foo3":"Albania"}; 
    jQuery("input[name='country']").each(function() { 
    myid=this.id; 
    myvalue=this.value; 
    $.each(object,function(key,value) 
      { 
       if(value==myvalue) 
        { 
        $("#"+myid).attr("checked",true); 
        } 
      }); 

    }); 

}); 

В HTML

<body> 
<form> 
<input type="checkbox" id="foo1" name="country" value="india">india 
<input type="checkbox" id="foo2" name="country" value="Afghanistan">Afghanistan 
<input type="checkbox" id="foo3" name="country" value="Albania">Albania 
<input type="checkbox" id="foo4" name="country" value="Algeria">Algeria 
</form> 
</body> 
</html> 
Смежные вопросы