2012-12-02 19 views
7

Próbowałem tego kodu, aby osiągnąć to, co chcę zrobić. To działało, gdy próbowałem go w moim zwykłym pliku HTML, ale gdy próbowałem go na mojej stronie JQuery Mobile, kod nie działał dobrze dla mnie. Czy są różne sposoby wyboru kodu JQuery Mobile?Sprawdzanie i odznaczanie pól wyboru wewnątrz okna dialogowego Mobile JQuery

Oto kod, który próbowałem:

javascript:

<script> 
function SetAllCheckBoxes(FormName, FieldName, CheckValue) 
{ 
    if(!document.forms[FormName]) 
     return; 
    var objCheckBoxes = document.forms[FormName].elements[FieldName]; 
    if(!objCheckBoxes) 
     return; 
    var countCheckBoxes = objCheckBoxes.length; 
    if(!countCheckBoxes) 
     objCheckBoxes.checked = CheckValue; 
    else 
     // set the check value for all check boxes 
     for(var i = 0; i < countCheckBoxes; i++) 
      objCheckBoxes[i].checked = CheckValue; 
} 

HTML

<form method="GET" name="myForm" onsubmit="return false;"> 
<label for="myCheckbox1"> 
    <input type="checkbox" name="myCheckbox" value="1" id="myCheckbox1"> 
    I like Britney Spears 
</label> 
<br> 

<label for="myCheckbox2"><input type="checkbox" name="myCheckbox" value="2" id="myCheckbox2"> 
    I like Hillary Duff 
</label> 
<br> 

<label for="myCheckbox3"><input type="checkbox" name="myCheckbox" value="3" id="myCheckbox3"> 
    I like Mandy Moore 
</label> 
<br> 

<input type="button" onclick="SetAllCheckBoxes('myForm', 'myCheckbox', true);" value="I like them all!"> 
&nbsp;&nbsp; 
<input type="button" onclick="SetAllCheckBoxes('myForm', 'myCheckbox', false);" value="I don't like any of them!"> 

Odpowiedz

22

Nie wiedziałem, że pola wyboru JQuery Mobile muszą zostać odświeżone po odznaczeniu/sprawdzeniu ich przez JQuery lub Javascript. Oto kod:

$("input[type='checkbox']").attr("checked",true).checkboxradio("refresh"); 

http://api.jquerymobile.com/checkboxradio/#method-refresh

+0

Zgadza się. Twoja odpowiedź wygląda jak moja. –

+0

Tak, ale jedynym problemem w moim kodzie jest dodanie '.checkboxradio ('refresh')' i to może być najłatwiejszy sposób, aby go opublikować, więc dodałem swoją odpowiedź. – JetPro

+0

W porządku! Dobra robota. –

4

Spróbuj tego:

function SetAllCheckBoxes(FormName, CheckValue){ 
    $.each($("#"+FormName+" input[type=checkbox]"), function(){ 
     $(this).attr("checked",CheckValue).checkboxradio("refresh"); 
    }); 
} 

Usunąłem FieldName, ponieważ twoja funkcja została nazwana SetAllCheckBoxes, tylko twoje pola wejściowe są takie same. Musisz tylko powiedzieć, jaka jest twoja forma i stan twoich pól wyboru.

+0

Wymyśliłem to. Wysłałem odpowiedź, ale dziękuję za odpowiedź. – JetPro

0

Aby włączyć/odświeżania wyboru w jQuery komórkowego trzeba użyć .prop zamiast .attr.

$("input[type='checkbox']").prop("checked",true).checkboxradio("refresh");

Powiązane problemy