当前位置: 首页 > 面试题库 >

getElementsByName()不起作用?

阚通
2023-03-14
问题内容

我有一个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()不一起工作呢?

  • -我检查了它是文档中唯一的唯一元素。
  • -我在激活功能时检查了Firebug的任何错误

这是我从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]取决于您拥有多少个)。

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



 类似资料:
  • 问题内容: 我有一些代码这样做: 在FF和Chrome中可以正常工作,但在IE7中则不能。大概是因为getElementsByName在IE中无法正常工作。最好的解决方法是什么? 问题答案: 如果您不知道为什么这在IE中不起作用,请参见该函数的MSDN文档: 使用getElementsByName方法时,将返回文档中具有指定NAME属性或ID属性值的所有元素。 同时支持NAME属性和ID属性的元素

  • 因此,我在一个控制器中有一个非常简单的代码片段,在这个代码片段中,我使用从外部文件中获取数据,它工作得很好!但是当我使用时,我会在控制台中得到一个

  • 问题内容: 正则表达式似乎还可以,因为第一行将子字符串正确替换为“ helloworld”,但是后者却不匹配,因为我看不到“ whynothelloworld?”。在控制台上 问题答案: 期望 整个 字符串匹配,而不仅仅是子字符串。 使用正则表达式匹配器对象的方法代替:

  • 问题内容: 我的 活动无法正常进行。 以下是我一一尝试过的代码段,但无济于事: 使用方法实施 设定方法 使用方法 这是我完整的MainActivity.java文件: 问题答案: 我遇到了同样的问题,我发现Android非常注重布局XML。我将NavigationView作为DrawerLayout的第一个孩子,但是出于某些愚蠢的原因,它必须是最后一个孩子。因此,您的布局必须具有以下顺序的元素:

  • 问题内容: 在什么情况下,java的System.out.println无法产生任何输出。我在方法内部调用了它,有时在调用该方法时得到了println,而有时却没有。 更新:我还在println之后使用System.out.flush()。 更新:感谢您的调试帮助。原来,阻止调用打开了一个对话框,使输出看起来与正常顺序大相径庭。我以为我要打印消息的方法是在对话框关闭时被调用的,但是该方法本身就是在

  • 问题内容: 第一次运行此sql时,需要39秒,再次运行并增加SQL_NO_CACHE时,它似乎没有生效: 我在这里尝试了多种方法 甚至重新启动mysql服务器或更改表名,但我仍然不能让39秒运行此SQL 我替换了另一个SQL,并在第一次运行SQL_NO_CACHE上增加了一个,问题是一样的: 是什么原因?如何获得相同的SQL运行时? 我想找到一种方法来优化此SQL以执行39秒 顺便说一句: 不起作