2010-09-16 32 views
1

我只是在使用我的網站測試全新的Internet Explorer 9 Beta。我看到了一些表單值的奇怪行爲,我不確定這是我的錯誤還是IE9中的錯誤。你怎麼看?HTML表單默認值覆蓋了Internet Explorer 9中後期的實際值

我有一個聲明這樣

<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」的值始終爲「」。

正如你所看到的,我在我的隱藏字段的定義中使用了一個值=「」。如果我刪除此默認值,則新值將正確傳輸到服務器。如果我使用默認值,則始終會傳輸默認值。

任何想法爲什麼會發生這種情況?

回答

0

你確定這在以前的IE版本中有效嗎?我一直在IE/Win的是語法問題,下面應該不過的工作:

formLastStatus.value = lastSaveStatus; 

以上應在所有瀏覽器中工作了。

+0

是的我非常確定它在IE6,7,8中工作。它也適用於9,NewStatus值也使用setAttribute。順便說一下,警報(formLastStatus.getAttribute(「value」));確實會提醒正確的新價值。但是這個值不會被轉移,但是默認值是。 – newtogit 2010-09-16 06:46:58