我只是在我的网站上测试全新的 Internet Explorer 9 Beta。我看到某些表单值的奇怪行为,我不确定这是我的错误还是 IE9 中的错误。你怎么看?
我有一个表单,它声明了几个像这样的隐藏输入字段
<input type="hidden" name="NewStatus" />
<input type="hidden" name="lastSaveStatus" value="" />
提交页面时,值会像这样保存(在 JavaScript 中):
newStatus.setAttribute("value", myNewStatus);
var formLastStatus = document.getElementsByName("lastSaveStatus")[0];
formLastStatus.setAttribute("value", lastSaveStatus);
alert(lastSaveStatus);
alert(formLastStatus.getAttribute("value"));
var form = document.getElementById("myForm");
form.submit();
该代码已经运行了多年,并且适用于所有浏览器。警报已经表明我现在对 lastSaveStatus 字段有问题。在 IE9 中,NewStatus 被正确传输到服务器(意味着我可以使用 Request.Form["NewStatus"] 访问 ASP.NET 中的值)。但是“lastSaveStatus”的值始终是“”。
如您所见,我在隐藏字段的定义中使用了 value=""。如果我删除此默认值,则新值将正确传输到服务器。如果我使用默认值,则始终传输默认值。
知道为什么会这样吗?