我正在使用jQuery为动态表单生成输入元素。在大多数情况下,事情进展顺利,但我在设置元素的文本属性时遇到问题...具体来说,文本值不会在页面上呈现,尽管它们看起来是正确的控制台的元素选项卡。
例如......
function generateInput(siteNumber, x){
adult = $("<input/>", {
type: 'radio',
id: 'adult'+siteNumber+''+x+'',
name: 'age'+siteNumber+'['+x+']',
value: 'adult',
text: 'Adult'
});
juvenile = $("<input/>", {
type: 'radio',
id: 'juvenile'+siteNumber+''+x+'',
name: 'age'+siteNumber+'['+x+']',
value: 'juvenile',
text: 'Juvenile'
});
return adult.append(juvenile);
};
$(document).on("change", ".number_select", function(){
siteNumber = $(this).parent().attr('data-site_number');
numberFound = $(this).val();
for(x = 1; x <= numberFound; x++){
this['inputArray' + siteNumber].push(generateInput(siteNumber, x));
};
$(this).parent().append(this['inputArray' + siteNumber]);
});
尽管控制台显示
<input type="radio" id="adult11" name="age1[1]" value="adult">Adult</input>
<input type="radio" id="juvenile11" name="age1[1]" value="juvenile">Juvenile</input>
这些文本元素没有出现在页面上 - 两个单选按钮在那里,没有文字。如果有人能帮我理解为什么会这样,以及我能做些什么来解决它,我将不胜感激。非常感谢!
EDITING 至于adeneo的观点,输入标签是自动关闭的,因此没有.text()的骰子。但是,我也试过.prepend()/。append(),同样地,没有做过......
adult = $("<input/>", {
type: 'radio',
id: 'adult'+siteNumber+''+x+'',
name: 'age'+siteNumber+'['+x+']',
value: 'adult'
}).prepend('Adult');
juvenile = $("<input/>", {
type: 'radio',
id: 'juvenile'+siteNumber+''+x+'',
name: 'age'+siteNumber+'['+x+']',
value: 'juvenile'
}).prepend('Juvenile');
答案 0 :(得分:1)
我会用你想要的文字创建一个标签,然后将输入添加到标签元素:
adult = $("<label>Adult</label>").prepend($("<input/>", {
type: 'radio',
id: 'adult'+siteNumber+''+x+'',
name: 'age'+siteNumber+'['+x+']',
value: 'adult'});