我正在尝试创建一个动态表单,所以点击一个按钮我调用了一个Javascript函数。这是功能:
function addradiobutton(type){
var element = document.createElement("input");
//Assign different attributes to the element.
element.setAttribute("type", type);
element.setAttribute("value", type);
element.setAttribute("name", type);
var foo = document.getElementById("fooBar");
//Append the element in page (in span).
foo.appendChild(element);
counter=counter+1;
}
此代码添加了一个单选按钮,其标签是这样的
<input type="radio" name="radio" value="radio">
但是我想这样做这个代码。
<input type="radio" name="radio" value="radio">WATER</input>
我不介意关闭输入标签,但我希望在代码末尾获得值'Water'。例如,水就是它的价值也是动态的。
我该怎么办?
答案 0 :(得分:4)
试试这个
<script type="text/javascript">
var counter = 0;
function addradiobutton(type, text) {
var label = document.createElement("label");
var element = document.createElement("input");
//Assign different attributes to the element.
element.setAttribute("type", type);
element.setAttribute("value", type);
element.setAttribute("name", type);
label.appendChild(element);
label.innerHTML += text;
var foo = document.getElementById("fooBar");
//Append the element in page (in span).
foo.appendChild(label);
counter = counter + 1;
}
addradiobutton("radio", "Water");
</script>
答案 1 :(得分:2)
<input type="radio" name="radio" value="radio">WATER</input>
...是无效的HTML。表达您想要表达的内容的方式是:
<label><input type="radio" name="radio" value="radio">WATER</label>
您只需创建一个标签元素,然后appendChild
输入元素和文本节点。
var label, input;
label = document.createElement('label');
input = document.createElement('input');
// Set type, name, value, etc on input
label.appendChild(input);
label.appendChild('Water');
foo.appendChild(label);
答案 2 :(得分:0)
我将使用的一个解决方案是创建它而不是更多:(使用jQuery以简化语法)
<div id="buttons">
</div>
<scrpit>
var temp;
temp = '<label><input type="radio" name="radio" value="radio" />WATER</label>';
temp + '<label><input type="radio" name="radio" value="radio" />WATER1</label>';
$('#buttons').html(temp);
</script>
未经测试但逻辑应该有效,我会尝试更新错误。
如果你想要x量,你可以将它放在一个函数中,其中for循环循环到x并迭代它们。例如:
<script>
function addButtons(number){
for(var i=0;i<number;i++){
// do the string appending here
}
}
</script>
答案 3 :(得分:-1)
这应该有用。
element.setAttribute("innerHTML","WATER");