Javascript 无法识别表输入值
我试图找到输入表格的两个输入值之和,并将其显示在同一表格的另一个字段上。。 但不幸的是,当我尝试访问操作的输入值时,javascript显示未定义。。 在这个问题上请帮我一把。。 以下是javascript代码:Javascript 无法识别表输入值,javascript,validation,user-input,detect,Javascript,Validation,User Input,Detect,我试图找到输入表格的两个输入值之和,并将其显示在同一表格的另一个字段上。。 但不幸的是,当我尝试访问操作的输入值时,javascript显示未定义。。 在这个问题上请帮我一把。。 以下是javascript代码: //JavaScript文档 var$=函数(id){ 返回文档.getElementById(id); } var add=函数(){ var tablenode=$(“bod”); var td=tablenode.getElementsByTagName(“td”); var
//JavaScript文档
var$=函数(id){
返回文档.getElementById(id);
}
var add=函数(){
var tablenode=$(“bod”);
var td=tablenode.getElementsByTagName(“td”);
var i;
如果(td.长度>0){
对于(i=0;i
无标题文件
价值0
价值1
全部的
总计
首先,您有一个输入错误:
lenght -> length
第二个变化:
td[i].value
致:
更仔细地观察代码,我认为您需要迭代行,因此您需要I+=3
而不是I++
因此,总体代码如下所示:
// JavaScript Document
var $ = function(id) {
return document.getElementById(id);
}
var add = function() {
var tablenode = $("bod");
var td = tablenode.getElementsByTagName("td");
var i;
if (td.length > 0) {
for (i = 0; i < td.length; i+=3) {
alert(td[i].innerText);
// Assuming you have integer values
//td[i+2].innerText= parseInt(td[i].innerText) + parseInt(td[i+1].innerText);
// Assuming you don't have integer values
//td[i+2].innerText= td[i].innerText + td[i+1].innerText;
}
} else
alert("empty td");
}
var ass = function() {
alert("reached");
var con = $("bod");
var row = document.createElement("tr");
var dat = document.createElement("td");
var content = document.createElement("input");
content.type = "text";
dat.appendChild(content);
row.appendChild(dat);
var data = document.createElement("td");
var contenta = document.createElement("input");
contenta.type = "text";
data.appendChild(contenta);
row.appendChild(data);
var datb = document.createElement("td");
var contentb = document.createElement("input");
contentb.type = "text";
datb.appendChild(contentb);
row.appendChild(datb);
con.appendChild(row);
}
window.onload = function() {
//$("new").onclick=add;
ass();
$("next").onclick = ass;
$("next").onmouseover = add;
//JavaScript文档
var$=函数(id){
返回文档.getElementById(id);
}
var add=函数(){
var tablenode=$(“bod”);
var td=tablenode.getElementsByTagName(“td”);
var i;
如果(td.length>0){
对于(i=0;i
只是一条评论
通过在一条语句中执行create和append,可以使ass函数更加简洁。还可以重用变量:
var ass = function() {
alert("reached");
var con = $("bod");
var row = document.createElement("tr");
var cell = row.appendChild(document.createElement("td"));
var content = cell.appendChild(document.createElement("input"));
content.type = "text";
cell = row.appendChild(document.createElement("td"));
content = cell.appendChild(document.createElement("input"));
content.type = "text";
cell = row.appendChild(document.createElement("td"));
content = cell.appendChild(document.createElement("input"));
content.type = "text";
con.appendChild(row);
}
您还可以将第二个两个单元格的附件替换为:
row.appendChild(cell.cloneNode(true));
row.appendChild(cell.cloneNode(true));
.value
不能用于
元素,只能用于
元素。此外,您还有一个输入错误:td.lenght
$(“bod”);到$(“#bod”);?如果(td.lenght>0)
是多余的,因为如果长度为0,则for循环无论如何都不会运行,即使键入是固定的。-,最好测试如果(tablenode)
由于$function可能返回null。要在行上进行迭代,需要集合。很高兴得到急需的帮助..不知道不能使用.value..bt,有一个问题:如果innertext同时包含整数值和非整数值,会发生什么情况…使用isNan
检查字符串是否是数字,如果不是整数,它将返回false呃
row.appendChild(cell.cloneNode(true));
row.appendChild(cell.cloneNode(true));