如何获取javascript中动态生成的字段名称的句柄?

时间:2010-09-22 16:03:04

标签: javascript field

我有一系列基于数据库记录动态创建的字段。它们将根据需要命名为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传入的数字结尾?

3 个答案:

答案 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(",")
相关问题