首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >getElementsByName()不工作了吗?

getElementsByName()不工作了吗?
EN

Stack Overflow用户
提问于 2011-08-06 21:59:50
回答 2查看 73.6K关注 0票数 21

我有一个Javascript函数,它应该用一个数字更新表单中的隐藏输入字段,该数字在每次调用该函数时都会增加。

它最初适用于getElementById(),但是因为我必须重新设计我的表单,所以我不能使用php函数来为元素分配一个单独的ID,所以我所拥有的就是该元素的唯一名称。

因此,我决定使用Javascript中的getElementsByName()来修改元素。

下面是该元素的HTML

代码语言:javascript
复制
  <input type="hidden" value="" name="staff_counter">

这是我的Javascript代码:

代码语言:javascript
复制
window.onload=function()
{

//function is activated by a form button 

var staffbox = document.getElementsByName('staff_counter');
                    staffbox.value = s;


                s++;
}

当函数被调用并且输入字段没有得到给定的值时,我在Firebug上没有得到任何错误。

它可以使用getElementById(),但是为什么突然之间它不能使用getElementsByName()呢?

  • -I已检查它是文档中唯一的唯一元素。
  • -I在激活function

时检查Firebug上的任何错误

下面是我在Codeigniter中用来生成元素的代码

代码语言:javascript
复制
// 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'));

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-06 22:03:15

document.getElementsByName()返回一个索引,因此您必须通过NodeListdocument.getElementsByName('staff_counter')[0] (取决于您拥有多少索引)来访问它。

您还可以访问length属性来检查有多少元素匹配。

票数 33
EN

Stack Overflow用户

发布于 2013-01-11 06:57:17

刚刚遇到了一个类似的问题,我在数组上用一个简单的循环解决了它。下面的代码将遍历并禁用所有名为“btnSubmit”的按钮。

代码语言:javascript
复制
for (var i=0;i<document.getElementsByName('btnSubmit').length;i++){
    document.getElementsByName('btnSubmit')[i].disabled=true;
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6967297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档