我有2个字段的前缀和值。假设当我将前缀作为A并且值为10时,它应该给我结果A1到A10。在我的代码中,它给我结果A1到A10,但在开始时它也附加值。这意味着它给出10A1而不是A1。谢谢。对不起语法。
function saveForm(){
var val = document.getElementById("val").value;
var prefix = document.getElementById("prefix").value;
for(i=1; i<=parseInt(val); i++){
val += prefix + i + "<br>";
}
document.getElementById("demo").innerHTML = val;
}
<label>Prefix</label>
<input id="prefix" name="prefix" type="text" /><label>Value</label><input id="val" type="text" />
<button type="button" onClick="saveForm()" />Save</button>
<p id="demo"></p>
答案 0 :(得分:1)
您正在使用已有值的现有变量val
,因此值将与之前的值连接。
使用已初始化为''
function saveForm() {
var val = document.getElementById("val").value;
var prefix = document.getElementById("prefix").value;
var value = '';
for (var i = 1; i <= parseInt(val); i++) { //declare i using keyword "var" or else it will be global
value += prefix + i + "<br>";
}
document.getElementById("demo").innerHTML = value;
}
&#13;
<label>Prefix</label><input id="prefix" name="prefix" type="text" /><label>Value</label><input id="val" type="text" />
<button type="button" onClick="saveForm()">Save</button>
<p id="demo"></p>
&#13;
答案 1 :(得分:0)
立即尝试。你只需要改变变量名。
function saveForm() {
resval = '';
var myval = document.getElementById("val").value;
var prefix = document.getElementById("prefix").value;
for (i = 1; i <= parseInt(myval); i++) {
resval += prefix + i + "<br>";
}
document.getElementById("demo").innerHTML = resval;
}
<body>
<label>Prefix</label><input id="prefix" name="prefix" type="text" /><label>Value</label><input id="val" type="text" />
<button type="button" onClick="saveForm()" />Save</button>
<p id="demo"></p>
</body>
答案 2 :(得分:0)
声明一个新变量temp
,在for循环中分配然后使用innerHTML
显示。
function saveForm(){
var val = document.getElementById("val").value;
var prefix = document.getElementById("prefix").value;
var temp = "";
for(i=1; i<=parseInt(val); i++){
temp += prefix + i + "<br>";
}
document.getElementById("demo").innerHTML = temp;
}