2016-12-04 63 views
0

变化​​输入文字并不能反映文本区,而

function table_to_text() { 
 
    var j; 
 
    var z = ''; 
 
    var k = 4; 
 
    var article1 = new Array(); 
 
    for (j = 1; j <= k; j++) { 
 
    article1[j] = document.getElementById("c" + j).value; 
 
    z = z + article1[j]; 
 
    } 
 
    document.getElementById("batch_full").innerText = z; 
 
} 
 

 
function text_to_table() { 
 
    var batch_text = document.getElementById("batch_full").value; 
 
    var length_covered = 0; 
 
    var n = 4; 
 
    var article = new Array(); 
 
    var temp; 
 
    var length; 
 
    for (var i = 1; i <= n; i++) { 
 
    article[i] = document.getElementById("c" + i); 
 
    length = article[i].getAttribute('maxlength'); 
 

 
    temp = batch_text.substr(length_covered, length); 
 
    article[i].value = temp; 
 

 
    length_covered = Number(length_covered) + Number(length); 
 
    } 
 
}
#batch_full { 
 
    height: 200px; 
 
    width: 500px; 
 
} 
 

 
table { 
 
    border-collapse: collapse; 
 
} 
 

 
table, 
 
th, 
 
td { 
 
    padding: 0px 10px 0px 10px; 
 
} 
 

 
td { 
 
    border: 1px solid black; 
 
} 
 

 
th { 
 
    text-align: left; 
 
    text-indent: -2.5%; 
 
} 
 

 
td>input { 
 
    resize: horizontal; 
 
    width: 100%; 
 
}
<textarea id="batch_full" onchange="text_to_table()">Batch input here</textarea> 
 

 
<table id="results_table" onchange="table_to_text()"> 
 
    <tr> 
 
    <th>S.No</th> 
 
    <th>Account Number</th> 
 
    <th>First Name</th> 
 
    <th>Last Name</th> 
 
    </tr> 
 
    <tr> 
 
    <td><input type="text" maxlength="2" id="c1"></td> 
 
    <td><input type="text" maxlength="10" id="c2"></td> 
 
    <td><input type="text" maxlength="10" id="c3"></td> 
 
    <td><input type="text" maxlength="10" id="c4"></td> 
 
    </tr> 
 
</table> 
 

 
<input type="button" onclick="text_to_table()" value="Text to Table"> 
 
<input type="button" onclick="table_to_text()" value="Table to Text">

当我输入的元素一些文本,更改会反映在表元素的JavaScript函数工作正常,但当我尝试编辑元素中的文本时,更改不会反映在元素中。 请帮我解决这个问题。我正在使用Codepen编写此代码。

+1

请粘贴codepen url。 – mitch

+0

http://codepen.io/vincent119/pen/vypwgq – Vincent

+0

“*当我在元素中输入一些文本时,更改会反映在表格元素中,但是当我尝试编辑元素中的文本时,所做的更改是没有反映在元素中。*“不清楚这些步骤是什么。 – epascarello

回答

0

您的代码中没有错误。要立即反映您在Textarea或Table中输入的数据,请在TextArea和表格元素中将“onchange”事件替换为“onchange”事件, ,由于您使用的是codepen,“innerText”属性将不会被渲染,而是使用“value”属性。

这应该做的伎俩。

+0

谢谢!有用! – Vincent

+0

进行了如下修改: 批输入这里 <表ID = “results_table” ** ** oninput = “table_to_text()” > function table_to_text(){ .. document.getElementById(“batch_full”)。 **值** = z; } – Vincent

0

innterText更改为innerHTML。似乎工作:http://codepen.io/anon/pen/gLvqMN

+0

感谢您的建议。但不幸的是它不起作用。 – Vincent

+0

您是否看到链接? – mitch

+0

是的,我做到了。我遵循的步骤。 1)输入一些文本的textarea。更改反映在S.No,帐号,名字和姓氏中。 2)现在我对帐号进行更改。这些更改不会反映在textarea中。 – Vincent