9

私は自分がやりたいことを達成するためにこのコードを試しました。通常のHTMLファイルで試してみたところ、機能しましたが、JQuery Mobileページで試してみたところ、コードがうまく機能しませんでした。JQuery Mobileのチェックボックスを選択するためのさまざまな方法やコードはありますか?

これが私が試したコードです:

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!">

4

3 に答える 3

26

JQueryまたはJavascriptを介してチェックボックスをオフ/チェックした後、JQueryMobileのチェックボックスを更新する必要があることに気づいていませんでした。コードは次のとおりです。

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

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

于 2012-12-05T21:53:47.327 に答える
4

これを試して:

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

関数の名前がSetAllCheckBoxesであるため、FieldNameを削除しました。入力フィールドだけが同じです。フォームとチェックボックスの状態を伝える必要があります。

于 2012-12-05T12:47:05.390 に答える
0

jquery mobileのチェックボックスを切り替える/更新するには、.attrではなく.propを使用する必要があります。

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

于 2016-05-24T11:02:06.413 に答える