我有以下表单文本输入:
<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中不会发生此行为。
如果这是一个愚蠢的问题,我道歉,但我觉得这很奇怪。
答案 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的属性不会替换为具有相同名称的表单控件的值。此页面中的示例显示结果取决于浏览器,属性以及控件的添加方式。