我有一个Javascript函数,该函数应使用每次更新该函数时都会增加的数字来更新表单中的隐藏输入字段。
它最初与 getElementById() 一起工作,但是因为我不得不重新设计表单,所以我无法使用php函数为元素分配一个单独的ID,因此我所拥有的只是该元素的唯一名称。
因此,我决定使用Javascript中的 getElementsByName() 修改元素。
这是该元素的HTML
<input type="hidden" value="" name="staff_counter">
这是我的Javascript代码:
window.onload=function() { //function is activated by a form button var staffbox = document.getElementsByName('staff_counter'); staffbox.value = s; s++; }
调用函数且输入字段未获得赋值时,Firebug没有错误。
它曾经与getElementById()一起工作,但是为什么突然之间却与getElementsByName()不一起工作呢?
这是我从Codeigniter使用的代码来制作元素
// staff_counter is name and the set_value function sets the value from what is //posted so if the validation fails and the page is reloaded the form element does // not lose its value echo form_hidden('staff_counter', set_value('staff_counter'));
谢谢
document.getElementsByName()返回一个NodeList,因此您必须通过一个索引来访问它:(document.getElementsByName('staff_counter')[0]取决于您拥有多少个)。
document.getElementsByName()
document.getElementsByName('staff_counter')[0]
您还可以访问length属性以检查匹配了多少个元素。
length