1

Web サイトで最新の Internet Explorer 9 Beta をテストしているところです。一部のフォーム値で奇妙な動作が見られますが、これが私のミスなのか IE9 のバグなのかわかりません。どう思いますか?

このようないくつかの非表示の入力フィールドを宣言する1つのフォームがあります

<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="" を使用しました。このデフォルト値を削除すると、新しい値がサーバーに正しく転送されます。デフォルト値を使用すると、常にデフォルト値が転送されます。

なぜこれが起こっているのですか?

4

1 に答える 1

0

これは以前のバージョンの IE では機能していましたか? 私は常にIE/Winでその構文に問題がありましたが、次のように動作するはずです:

formLastStatus.value = lastSaveStatus;

上記はすべてのブラウザでも機能するはずです。

于 2010-09-16T06:39:42.817 に答える