将无线电输入动态添加到jQuery Mobile字段集控制组

时间:2013-07-09 11:03:20

标签: jquery html5 jquery-mobile radio-button

我已经看到了这个问题的变化,但不是我在SO上的具体情况,所以这里有。

我无法使用jQuery Mobile动态地向现有控制组添加新的无线电输入。它会添加,但样式不正确,似乎没有正确地与其他输入交互。

这是我的小提琴: http://jsfiddle.net/cjindustries/3mQF6/

谁能看到我做错了什么?或者是再次重新生成整个fieldset / controlgroup的情况? :(

谢谢!下面的代码也是......

        <div id="testPage" data-role="page">
        <div data-role="content">
    <fieldset data-role="controlgroup">
        <legend>Radio buttons, vertical controlgroup:</legend>
            <input type="radio" name="radio-choice-1" id="radio-choice-1" value="choice-1" checked="checked">
            <label for="radio-choice-1">Cat</label>
            <input type="radio" name="radio-choice-1" id="radio-choice-2" value="choice-2">
            <label for="radio-choice-2">Dog</label>
            <input type="radio" name="radio-choice-1" id="radio-choice-3" value="choice-3">
            <label for="radio-choice-3">Hamster</label>
            <input type="radio" name="radio-choice-1" id="radio-choice-4" value="choice-4">
            <label for="radio-choice-4">Lizard</label>
    </fieldset>
        </div>
    </div>

$('<input type="radio" name="radio-choice-5" id="radio-choice-5"><label for="radio-choice-5">Horse</label>')
    .appendTo("fieldset");

$("fieldset").trigger('create');

1 个答案:

答案 0 :(得分:1)

您需要使用上面使用的name="radio-choice-1"。这解决了你的行为问题

以下变化解决了行为问题 您修改后的代码,用于动态添加无线电。

 $('<input type="radio" name="radio-choice-1" id="radio-choice-5"><label for="radio-choice-5">Horse</label>').appendTo("fieldset");

通过以下更改解决了样式问题 只需重新创建div而不是fieldset

 $("div").trigger('create');

检查Fiddle Demo