javascript循环不写入数字输入

javascript循环不写入数字输入,javascript,html,loops,Javascript,Html,Loops,我对动态表行中的几个字段进行了循环,以从localstorage写入和检索数据 它首先在localstore上保存数据,将表重置为0行,为了检索数据,将重新创建表行并在其中加载数据。问题是,当文本框的类型为“number”时,字段显示为空。当我尝试在数字字段的占位符值上加载数据时,它会在相应的字段上加载数据,只是为了看到数据 这只发生在表的动态行中的循环字段上。可以正确加载来自固定行的数字输入 我在循环中使用的ID正确并且打印 document.getElementById('4-4-1')。值

我对动态表行中的几个字段进行了循环,以从localstorage写入和检索数据

它首先在localstore上保存数据,将表重置为0行,为了检索数据,将重新创建表行并在其中加载数据。问题是,当文本框的类型为“number”时,字段显示为空。当我尝试在数字字段的占位符值上加载数据时,它会在相应的字段上加载数据,只是为了看到数据

这只发生在表的动态行中的循环字段上。可以正确加载来自固定行的数字输入

我在循环中使用的ID正确并且打印

document.getElementById('4-4-1')。值=2“

在哪里

但是当我再次在控制台上粘贴
document.getElementById('4-4-1').value
时,它什么也不返回(尽管字段上显示了一个占位符'2'

我还尝试在控制台中使用同一行更改该值,它工作正常

为什么它在循环期间不处理数字字段

在Chrome、Firefox上试用过,目标是Android 4.2网络视图

商店循环

function saveRecordNow() {
var rec = {};
rec[0] = document.getElementById('data0').value
rec[1] = document.getElementById('data1').value
rec[2] = document.getElementById('otherdata').value
rec[3] = document.getElementById('foo').value
...
...
var tblSpaceQtr = document.getElementById('tblSpaceQtr');

rowCnt = tblSpaceQtr.getElementsByTagName("tr").length - 11;  
//there are 11 fixed rows on the table, and is not included on the count


//var page4Data = '';
for(x=1; x <= rowCnt; x++) {
  page4Data += document.getElementById("4-1-"+x).value + ', '+
    document.getElementById("4-2-"+x).value + ', '+
    document.getElementById("4-3-"+x).value + ', '+
    document.getElementById("4-4-"+x).value + ', '+
    document.getElementById("4-5-"+x).value + ', '+
    document.getElementById("4-6-"+x).value + ', '+
    document.getElementById("4-7-"+x).value + ', '+
    document.getElementById("4-8-"+x).value + ', '+
    document.getElementById("4-9-"+x).value + ', '+
    document.getElementById("4-10-"+x).value + ', '+
    document.getElementById("4-11-"+x).value + ', '+
    document.getElementById("4-12-"+x).value + ', '+
    document.getElementById("4-13-"+x).value + ', '+
    document.getElementById("4-14-"+x).value + ', '+
    document.getElementById("4-15-"+x).value + ', '+
    document.getElementById("4-16-"+x).value + ', '+
    document.getElementById("4-17-"+x).value + ', '+
    document.getElementById("4-18-"+x).value + ', '+
    document.getElementById("4-19-"+x).value + ', '+
    document.getElementById("4-20-"+x).value + ', '+
    document.getElementById("4-21-"+x).value + ', '+
    document.getElementById("4-22-"+x).value + ', '+
    document.getElementById("4-23-"+x).value + '||| ';
    //console.log("data from 4-1-"+x);
}
page4Data.substring(0, page4Data.length - 2); //remove end comma
//alert()
rec[681] = page4Data;

...
}
函数saveRecordNow(){ var rec={}; rec[0]=document.getElementById('data0')。值 rec[1]=document.getElementById('data1')。值 rec[2]=document.getElementById('otherdata')。值 rec[3]=document.getElementById('foo').value ... ... var tblSpaceQtr=document.getElementById('tblSpaceQtr'); rowCnt=tblSpaceQtr.getElementsByTagName(“tr”).length-11; //表上有11个固定行,不包括在计数中 //var page4Data='';
对于(x=1;x,JavaScript中的元素ID、类名和变量不能以数字开头,请在值前面加上字符,然后重试

for(x=1; x < pg4Data.length; x++) {
    pg4RowData = pg4Data[x-1].split(',');
    document.getElementById("s-4-1-"+x).value = pg4RowData[0];    
    document.getElementById("s-4-2-"+x).value = pg4RowData[1];
    document.getElementById("s-4-3-"+x).value = pg4RowData[2];
    document.getElementById("s-4-4-"+x).value = pg4RowData[3];
(x=1;x{ pg4RowData=pg4Data[x-1]。拆分(','); document.getElementById(“s-4-1-”+x).value=pg4RowData[0]; document.getElementById(“s-4-2-”+x).value=pg4RowData[1]; document.getElementById(“s-4-3-”+x).value=pg4RowData[2]; document.getElementById(“s-4-4-”+x).value=pg4RowData[3];
请创建一个简化的测试用例,完整地演示问题。它需要包括一些HTML和加载脚本的机制。一个JSBin或JSFIDLE的实例会很有帮助。只需提醒HTML4:
ID和名称标记必须以字母([a-Za-z])开头并且后面可以跟任意数量的字母、数字([0-9])、连字符(“-”)、下划线(“389;”)、冒号(:”)和句点(“.”).
pg4RowData有没有可能不是您期望的那样?@GuardianX没有,它会在相应的字段中弹出正确的数据,尤其是在数字字段中作为占位符文本,而不是在它们的值上。我使用占位符来显示数据。@GuardianX arghh我收回了我说的话!!这是一直以来的拆分。应该是
split(',');
使用空格。我的mistakeHi@Praveen,我试着像
document.getElementById(“row4-1-”+x)那样做
,但在浏览器上没有效果。我在chrome控制台上执行了该命令,它更改了值,所以我仍然认为这是循环。我还尝试在创建字段时将字段类型更改为“text”,并且可以正常工作。同时,我将在可能的情况下尝试执行JSFIDLE。谢谢大家的支持answering@niCad是的,使用JSFIDLE将是一个很好的id我在等小提琴,好让我们看看有什么问题!
function loadRecord(n) {

var getVar = JSON.parse(localStorage.getItem(n));
document.getElementById('id').value = n;
numCells = document.getElementById('nbcells');

document.getElementById('data0').value = getVar[0];
document.getElementById('data1').value = getVar[1];
document.getElementById('otherdata').value = getVar[2];
document.getElementById('foo').value = getVar[3];
document.getElementById('foo2').value = getVar[4];
document.getElementById('foo3').value = getVar[5];
...

initTable(numCells, numCells.value)
var pg4Data = [],
pg4RowData = [],
pg4Data = getVar[681].split('|||');
page4Data = getVar[681]
//getVar[681] from JSON.parse(localStore['source']);
//having a csv separated by '|||' per row

for(x=1; x < pg4Data.length; x++) {
    pg4RowData = pg4Data[x-1].split(',');
    document.getElementById("4-1-"+x).value = pg4RowData[0];    
    document.getElementById("4-2-"+x).value = pg4RowData[1];
    document.getElementById("4-3-"+x).value = pg4RowData[2];
    document.getElementById("4-4-"+x).value = pg4RowData[3];
    console.log("document.getElementById('4-4-"+x+"').value =" +pg4RowData[3]);
        document.getElementById("4-4-"+x).placeholder = pg4RowData[3];
    //document.getElementById("4-4-"+x).setAttribute('value', pg4RowData[3]);   
    //document.getElementById("4-5-"+x).value = pg4RowData[4];
    document.getElementById("4-5-"+x).value = pg4RowData[4];
        document.getElementById("4-5-"+x).placeholder = pg4RowData[4];
    document.getElementById("4-6-"+x).value = pg4RowData[5];
        document.getElementById("4-6-"+x).placeholder = pg4RowData[5];
    document.getElementById("4-7-"+x).value = pg4RowData[6];
        document.getElementById("4-7-"+x).placeholder = pg4RowData[6];
    document.getElementById("4-8-"+x).value = pg4RowData[7];
        document.getElementById("4-8-"+x).placeholder = pg4RowData[7];
    document.getElementById("4-9-"+x).value = pg4RowData[8];
        document.getElementById("4-9-"+x).placeholder = pg4RowData[8];
    document.getElementById("4-10-"+x).value = pg4RowData[9];
    document.getElementById("4-11-"+x).value = pg4RowData[10];
    document.getElementById("4-12-"+x).value = pg4RowData[11];
    document.getElementById("4-13-"+x).value = pg4RowData[12];
    document.getElementById("4-14-"+x).value = pg4RowData[13];
    document.getElementById("4-15-"+x).value = pg4RowData[14];
    document.getElementById("4-16-"+x).value = pg4RowData[15];
    document.getElementById("4-17-"+x).value = pg4RowData[16];
    document.getElementById("4-18-"+x).value = pg4RowData[17];
    document.getElementById("4-19-"+x).value = pg4RowData[18];
    document.getElementById("4-20-"+x).value = pg4RowData[19];
    document.getElementById("4-21-"+x).value = pg4RowData[20];
    document.getElementById("4-22-"+x).value = pg4RowData[21];
    document.getElementById("4-23-"+x).value = pg4RowData[22];
}
...
}
for(x=1; x < pg4Data.length; x++) {
    pg4RowData = pg4Data[x-1].split(',');
    document.getElementById("s-4-1-"+x).value = pg4RowData[0];    
    document.getElementById("s-4-2-"+x).value = pg4RowData[1];
    document.getElementById("s-4-3-"+x).value = pg4RowData[2];
    document.getElementById("s-4-4-"+x).value = pg4RowData[3];