js函数动态向fieledset中添加radio(单选框),以下称这个函数是Foo()。
第一次执行foo的时候,生成radio的数量不对,调试的时候循环执行了3次,而只生成了一个radio。下一次执行的时候就可以正常出现3个了。
使用jquery mobile框架。
附源代码:
function generateCheckbox ()
{
var usercount = parseInt(localStorage.getItem('usercount'));
var placer = document.getElementById('checkboxplacer');
for (var i =0;i<usercount;i++)
{
var e = document.createElement("input");
e.type ='radio';
e.name='paidname';
e.value=fetchValue('user'+i.toString());
e.id = 'user'+i.toString();
placer.appendChild(e);
var a = document.createElement('label');
a.innerHTML = fetchValue('user'+i.toString());
a.for = 'user'+i.toString();
placer.appendChild(a);
}
}
根据你提供的信息和相关的代码, 没有出现你说的循环了三次, 但只出来一个 radio 的情况.
建议你在 var usercount = parseInt(localStorage.getItem('usercount'));
这一行后面, 加个 alert(usercount);
来确认你读取到的数值具体是多少.
附代码:
<div id="checkboxplacer"></div>
<script type="text/javascript">
generateCheckbox();
function generateCheckbox ()
{
//var usercount = parseInt(localStorage.getItem('usercount'));
var usercount = 3;//循环三次
var placer = document.getElementById('checkboxplacer');
for (var i =0;i<usercount;i++)
{
var e = document.createElement("input");
e.type ='radio';
e.name='paidname';
e.value=fetchValue('user'+i.toString());
e.id = 'user'+i.toString();
placer.appendChild(e);
var a = document.createElement('label');
a.innerHTML = fetchValue('user'+i.toString());
a.for = 'user'+i.toString();
placer.appendChild(a);
}
}
function fetchValue(v){
return v;
}
</script>
能复现吗?
我觉得可能是localStorage.getItem('usercount')
这步有问题。