2

我在一个 HTML 页面上有多个单选按钮组,对于每个组,我希望检查第一个按钮。当我在 HTML 中设置它时,选中的样式仅应用于第二组中的按钮。

<fieldset data-role="controlgroup" data-mini="false" data-type="horizontal">
    <input type="radio" name="radio-choice" id="A_AM_RadioButton" checked="checked"/>
        <label for="A_AM_RadioButton" id="A_AM_RadioButtonLabel">AM</label>
    <input type="radio" name="radio-choice" id="A_PM_RadioButton"/>
        <label for="A_PM_RadioButton" id="A_PM_RadioButtonLabel">PM</label>
</fieldset>                             
<fieldset data-role="controlgroup" data-mini="false" data-type="horizontal">
    <input type="radio" name="radio-choice" id="B_AM_RadioButton" checked="checked"/>
        <label for="B_AM_RadioButton" id="B_AM_RadioButtonLabel">AM</label>
    <input type="radio" name="radio-choice" id="B_PM_RadioButton"/>
        <label for="B_PM_RadioButton" id="B_PM_RadioButtonLabel">PM</label>
</fieldset>

当我离开 HTML 中的“checked”属性并尝试在我的 JS 文件中应用该属性时,我得到了相同的结果。

$("#A_AM_RadioButton").attr("checked",true);
$("#B_AM_RadioButton").attr("checked",true);
$("input[type='radio']").checkboxradio("refresh");

我可以理解 JQuery Mobile 不希望在一个字段集中检查多个按钮,而是跨字段集?

如果有人可以告诉我我的错误(或者我正在尝试的事情是否可行),我将不胜感激。谢谢!

4

2 回答 2

5

尝试更改每个字段集的名称。

  <fieldset data-role="controlgroup" data-mini="false" data-type="horizontal">
    <input type="radio" name="radio-choice" id="A_AM_RadioButton" checked="checked"/>
        <label for="A_AM_RadioButton" id="A_AM_RadioButtonLabel">AM</label>
    <input type="radio" name="radio-choice" id="A_PM_RadioButton"/>
        <label for="A_PM_RadioButton" id="A_PM_RadioButtonLabel">PM</label>
</fieldset>                             
<fieldset data-role="controlgroup" data-mini="false" data-type="horizontal">
    <input type="radio" name="radio-choice-2" id="B_AM_RadioButton" checked="checked"/>
        <label for="B_AM_RadioButton" id="B_AM_RadioButtonLabel">AM</label>
    <input type="radio" name="radio-choice-2" id="B_PM_RadioButton"/>
        <label for="B_PM_RadioButton" id="B_PM_RadioButtonLabel">PM</label>
</fieldset>
于 2013-03-29T15:21:18.717 回答
1

首先,您需要找到data-role="controlgroup"然后为每个组选择第一个input[type=radio]。同时,将其更改.propcheckedrefresh它。

工作示例。

$(document).find('[data-role=controlgroup]').each(function() {
 $(this).find('input[type=radio]').first().prop('checked', true).checkboxradio('refresh');
});
于 2013-03-29T15:30:05.107 回答