我有一系列基于数据库记录动态创建的字段。它们将根据需要命名为cardObject1,cardObject2等等。我现在正在尝试访问传入号码的函数中的特定cardObject字段,但是收到错误消息。
该字段如下所示:
<input name="cardObject241" value="2,$25.00,1" type="hidden">
我使用的js代码如下所示:
function deleteFromCart(id){
if (confirm("Are you sure you want to delete this item from your cart?")){
var voucherNbr = document.getElementById("voucherNbr").value;
var cardObjectArray = document.getElementById("cardObject"+id).value.split();
var amtToDelete = cardObjectArray[1];
alert("need to delete " + amtToDelete);
}
}
我得到的错误是
document.getElementById("cardObject" + id) is null
在这一行:
var cardObjectArray = document.getElementById("cardObject"+id).value.split();
如何获取cardObject字段的句柄,该字段以作为id param传入的数字结尾?
答案 0 :(得分:0)
您需要添加一个id =“”属性,其名称与name属性相同。
<input id="cardObject241" name="cardObject241" value="2,$25.00,1" type="hidden">
答案 1 :(得分:0)
首先,您的输入字段需要一个id和一个名称,所以它看起来像这样:
<input name="cardObject241" id="cardObject241" value="2,$25.00,1" type="hidden">
其次,如果你有一个可能存在或不存在的对象,在开始操作属性之前检查存在总是一个好主意:
var tempObj=document.getElementById("cardObject"+id)
if(tempObj) {
var cardObjectArray = tempObj.value.split();
...do your stuff with cardObjectArray....
}
答案 2 :(得分:0)
您可以使用document.getElementsByName()
或(跨浏览器回到石器时代)
document.forms[formIndexOrName].elements["cardObject" + id].value.split(",")