javascript 中未捕获的 ReferenceError
Uncaught ReferenceError in javascript
我正在 rails 项目上开发 Ruby。在视图文件中,我有一些 javascript 可以在单击按钮时克隆 table 行。每个 table 行包含多个输入文本框。现在我想将 id 动态分配给新克隆行的输入文本框。但是我遇到了这个错误:
index:48 Uncaught ReferenceError: item1 未定义
索引是视图名称。
我的代码是:
function insRow()
{
var x=document.getElementById('POITable');
var new_row = x.rows[1].cloneNode(true);
new_row.style.visibility = "visible";
var len = x.rows.length;
new_row_itembox=new_row.cells[0].getElementsByTagName("input");
new_row_itembox.id=<%= ("item"+@counter.to_s) %>; //this line causes the error
//console.log(new_row_itembox);
var inp1 = new_row.cells[1].getElementsByTagName('input')[0];
inp1.id += len;
inp1.value = '';
var inp2 = new_row.cells[2].getElementsByTagName('input')[0];
inp2.id += len;
inp2.value = '';
x.appendChild( new_row );
var sec_last_row=x.rows[x.rows.length-2];
console.log(x.rows.length);
console.log(x.rows[x.rows.length-2]);
sec_last_row.cells[5].innerHTML="<img alt='Icon' src='/assets/minus-icon.png' id='delPOIbutton' onclick='deleteRow(this)'/>";
sec_last_row.cells[6].innerHTML="";
var last_row=x.rows[x.rows.length-1]
last_row.cells[5].innerHTML="<img alt='Icon' src='/assets/add-icon.png' id='addmorePOIbutton' onclick='insRow(this)'/>";
last_row.cells[6].innerHTML="<img alt='Icon' src='/assets/minus-icon.png' id='delPOIbutton' onclick='deleteRow(this)'/>";
}
上面的 javascript 函数用于在单击按钮时插入另一行。
在代码中,@counter是一个rails变量,定义在相应的controller action中。
如果我删除那部分并静态分配输入框的 id,它工作正常。
我的html代码是:
<body>
<form>
<center>
<div id="POItablediv">
<br/>
<table id="POITable">
<tr>
<th>Item</th>
<th>Brand</th>
<th>UOM</th>
<th>Quantity</th>
<th>Remarks</th>
</tr>
<tr style="visibility:hidden;"> <!-- This is just a dummy row-->
<td><input size=25 type="text"/></td>
<td><input size=25 type="text"/></td>
<td><input size=25 type="text"/></td>
<td><input size=25 type="text"/></td>
<td><input size=25 type="text"/></td>
<td><img alt="Icon" src="/assets/add-icon.png" id="addmorePOIbutton" onclick="insRow()" /></td>
<td><img alt="Icon" src="/assets/minus-icon.png" id="delPOIbutton" onclick="deleteRow(this)"/></td>
</tr>
<tr>
<td><input size=25 type="text"/></td>
<td><input size=25 type="text"/></td>
<td><input size=25 type="text"/></td>
<td><input size=25 type="text"/></td>
<td><input size=25 type="text"/></td>
<td><img alt="Icon" src="/assets/add-icon.png" id="addmorePOIbutton" onclick="insRow()" /></td>
<td><img alt="Icon" src="/assets/minus-icon.png" id="delPOIbutton" onclick="deleteRow(this)"/></td>
</tr>
</table>
</div>
<input type="submit" name="submit_button" onclick="make_hash()">
</center>
</form>
</body>
换行
new_row_itembox.id=<%= ("item"+@counter.to_s) %>;
至
new_row_itembox.id='<%= ("item"+@counter.to_s) %>';
^ ^
-------- added these ---------
我正在 rails 项目上开发 Ruby。在视图文件中,我有一些 javascript 可以在单击按钮时克隆 table 行。每个 table 行包含多个输入文本框。现在我想将 id 动态分配给新克隆行的输入文本框。但是我遇到了这个错误:
index:48 Uncaught ReferenceError: item1 未定义
索引是视图名称。
我的代码是:
function insRow()
{
var x=document.getElementById('POITable');
var new_row = x.rows[1].cloneNode(true);
new_row.style.visibility = "visible";
var len = x.rows.length;
new_row_itembox=new_row.cells[0].getElementsByTagName("input");
new_row_itembox.id=<%= ("item"+@counter.to_s) %>; //this line causes the error
//console.log(new_row_itembox);
var inp1 = new_row.cells[1].getElementsByTagName('input')[0];
inp1.id += len;
inp1.value = '';
var inp2 = new_row.cells[2].getElementsByTagName('input')[0];
inp2.id += len;
inp2.value = '';
x.appendChild( new_row );
var sec_last_row=x.rows[x.rows.length-2];
console.log(x.rows.length);
console.log(x.rows[x.rows.length-2]);
sec_last_row.cells[5].innerHTML="<img alt='Icon' src='/assets/minus-icon.png' id='delPOIbutton' onclick='deleteRow(this)'/>";
sec_last_row.cells[6].innerHTML="";
var last_row=x.rows[x.rows.length-1]
last_row.cells[5].innerHTML="<img alt='Icon' src='/assets/add-icon.png' id='addmorePOIbutton' onclick='insRow(this)'/>";
last_row.cells[6].innerHTML="<img alt='Icon' src='/assets/minus-icon.png' id='delPOIbutton' onclick='deleteRow(this)'/>";
}
上面的 javascript 函数用于在单击按钮时插入另一行。
在代码中,@counter是一个rails变量,定义在相应的controller action中。
如果我删除那部分并静态分配输入框的 id,它工作正常。
我的html代码是:
<body>
<form>
<center>
<div id="POItablediv">
<br/>
<table id="POITable">
<tr>
<th>Item</th>
<th>Brand</th>
<th>UOM</th>
<th>Quantity</th>
<th>Remarks</th>
</tr>
<tr style="visibility:hidden;"> <!-- This is just a dummy row-->
<td><input size=25 type="text"/></td>
<td><input size=25 type="text"/></td>
<td><input size=25 type="text"/></td>
<td><input size=25 type="text"/></td>
<td><input size=25 type="text"/></td>
<td><img alt="Icon" src="/assets/add-icon.png" id="addmorePOIbutton" onclick="insRow()" /></td>
<td><img alt="Icon" src="/assets/minus-icon.png" id="delPOIbutton" onclick="deleteRow(this)"/></td>
</tr>
<tr>
<td><input size=25 type="text"/></td>
<td><input size=25 type="text"/></td>
<td><input size=25 type="text"/></td>
<td><input size=25 type="text"/></td>
<td><input size=25 type="text"/></td>
<td><img alt="Icon" src="/assets/add-icon.png" id="addmorePOIbutton" onclick="insRow()" /></td>
<td><img alt="Icon" src="/assets/minus-icon.png" id="delPOIbutton" onclick="deleteRow(this)"/></td>
</tr>
</table>
</div>
<input type="submit" name="submit_button" onclick="make_hash()">
</center>
</form>
</body>
换行
new_row_itembox.id=<%= ("item"+@counter.to_s) %>;
至
new_row_itembox.id='<%= ("item"+@counter.to_s) %>';
^ ^
-------- added these ---------