输入字段为空白,即使在<input name =“name”/>时也带有值

时间:2013-06-14 05:36:01

标签: html firefox

我有以下表单文本输入:

<input name="name" type="text" value="test" id="name">

如果我将name属性更改为其他有效的东西,它将不会显示该值。它是硬编码的,没有javascripts与它交互。

更新:它在Internet Explorer和Google Chrome中运行正常,无法在Firefox中使用。

更新2:我能够复制问题。

例如,在我的localhost中我访问/ blog / login,输入名称显示值test,这是硬编码的,如果我删除值并重新加载,而不提交任何内容,那么输入名称将为空,只要我重装。如果我再次导航到/ blog / login,则会再次显示硬编码值。

在IE和Chrome中不会发生此行为。

如果这是一个愚蠢的问题,我道歉,但我觉得这很奇怪。

1 个答案:

答案 0 :(得分:0)

浏览器将表单控件的名称和ID添加为FORM的属性。这导致表格的属性被替换。

浏览器还可以将其他元素的名称和id添加为文档属性,有时还添加到全局对象(或范围内全局对象上方的对象)。此非标准行为可能导致替换其他对象上的属性。它引起的问题将详细讨论。

当表单控件的名称与FORM对象的属性名称冲突时,会出现问题。

例如:

简单的不安全名称示例

<form action="">
  <input type="text" name="name">
  <input type="submit" name="submit">
</form>

<强>结果

name="name"元素替换了FORM的name属性的值。使用FORM的提交方法和带有name="submit&#39;的元素会发生类似的冲突。哪个会赢?

在大多数情况下,表单控件获胜并且FORM的属性被替换为具有表单控件的值,或者,如果多个表单控件具有该名称,则FORM的属性为替换为包含这些表单控件的NodeList。

但是,在某些情况下,FORM的属性不会替换为具有相同名称的表单控件的值。此页面中的示例显示结果取决于浏览器,属性以及控件的添加方式。

http://jibbering.com/faq/names/