我在jquery构建一个学习回复system.Now时遇到了一些严重的问题,我想在每次有一个问题要回答的时候动态填充问题页面。到目前为止,我已经能够做到所有这些,但目前,当我动态调用它们时,我的单选按钮拒绝遵循正常的jquery顺序。当我动态调用设计中断时,当我硬编码时,我就得到了预期的结果。下面的图片是wat试图解释的一个例子。上面扭曲的单选按钮是动态的,下2是硬编码的。
这是我使用的代码:
var possibleAnswers=poss_ans.split(",");//poss_ans is string containing all the answer from the database
for (var i =0; i < possibleAnswers.length; i++) {
var label = sp[i];
$radio = $('<input />', { type: "radio" });
var $label = $('<label />', { text: label});
var wrapper = $('<div />');
wrapper.append($label).append($radio);;
$('div#poss_ans').append(wrapper);
}拜托,这是我的html,对不起,但我对小提琴不太在行,这就是为什么我没有在那里发帖。
<fieldset class="ui-grid-b">
<h1 id="title">H1 Heading</h1>
<p id="question">The question</p>
<div data-role="fieldcontain">
<fieldset data-role="controlgroup">
<div id="poss_ans"></div>
<input type="radio" name="radio-choice-1" id="radio-choice-2" value="choice-2" />
<label for="radio-choice-2">6</label>
<input type="radio" name="radio-choice-1" id="radio-choice-3" value="choice-3" />
<label for="radio-choice-3">4</label>
<input type="radio" name="radio-choice-1" id="radio-choice-3" value="choice-3" />
<label for="radio-choice-3">8</label><input type="radio" name="radio-choice-1" id="radio-choice-3" value="choice-3" />
<label for="radio-choice-3">2</label>
</fieldset>
</div>
</div>任何帮助或贡献,grateful.Thanks都会

发布于 2015-03-17 13:53:01
对于jQuery移动,在动态添加控件之后,您需要初始化小部件或调用它们的刷新,以便它们应用jQM类。对于您的情况,可以简化HTML:
<h1 id="title">H1 Heading</h1>
<p id="question">The question</p>
<fieldset data-role="controlgroup">
<div id="poss_ans" ></div>
</fieldset>然后在剧本里。您需要向单选按钮中添加一个名称,以便检查其中一个按钮时不检查其他按钮。还添加一个id,并在标签a中指向相关的id。最后,在完成所有附加操作之后,调用div上的enhanceWithin()来初始化checkboxradio小部件,然后告诉控件组字段集刷新自己。
var $posans = $('#poss_ans');
for (var i = 0; i < possibleAnswers.length; i++) {
var label = possibleAnswers[i];
$radio = $('<input />', {
id: 'rad' + i,
name: 'possibleAnswers',
type: "radio",
value: possibleAnswers[i],
});
var $label = $('<label />', {
for: 'rad' + i,
text: label
});
$posans.append($label).append($radio);
}
$posans.enhanceWithin().closest("fieldset").controlgroup("refresh");演示
发布于 2015-03-17 11:56:52
在测试您的代码并放入默认的值字符串并将值添加到动态创建的收音机之后,我可以确认它运行良好。我可以想象您的问题是HTML的主要部分存在问题。但既然你还没加进去,我就无法确认。
以下是您的javascript代码:
var poss_ans = "6,4,8,2";
var possibleAnswers = poss_ans.split(","); //poss_ans is string containing all the answer from the database
for (var i = 0; i < possibleAnswers.length; i++) {
var label = possibleAnswers[i];
$radio = $('<input />', {
type: "radio",
value: possibleAnswers[i],
});
var $label = $('<label />', {
text: label
});
var wrapper = $('<div />');
wrapper.append($label).append($radio);
$('div#poss_ans').append(wrapper);
}并且使用HTML:
<div id="poss_ans"></div>最后,一个实用的Fiddle - http://jsfiddle.net/andyjh07/tw0k5qkc/
https://stackoverflow.com/questions/29098263
复制相似问题