IEの場合、form要素のname属性を変えられない
タイトルの通り。IE*1の場合、form要素のname属性が変わってくれません。
しかもIE Developer Toolbarで属性値確認してみると、一見、変わってる様に見えるのでタチが悪い。
ってか、そのせいで騙されたわっ!!
検証ソース
テキストボックスのname属性値を変更しようとしてます。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <meta http-equiv="Content-Style-Type" content="text/css"> <title>test</title> <script type="text/javascript"> function changeName(argName) { var elm = document.getElementById('test'); elm.name = argName; checkGetting(); } function checkGetting() { var s, elmT1, elmT2; elmT1 = document.getElementsByName('txt1')[0]; elmT2 = document.getElementsByName('txt2')[0]; s = (elmT1) ? '有る': '無い'; document.getElementById('t1').innerHTML = 'txt1が' + s; s = (elmT2) ? '有る': '無い'; document.getElementById('t2').innerHTML = 'txt2が' + s; /* alert(elmT1.length); alert(elmT2.length); alert(document.getElementById('frm1').innerHTML); */ } window.onload = function() { checkGetting(); } </script> </head> <body> <div id="formcontainer"> <form id="frm1" name="frm1" action="#"> <p> <input type="text" id="test" name="txt1" value=""> <input type="button" value="txt1に変える" onclick="changeName('txt1');"> <input type="button" value="txt2に変える" onclick="changeName('txt2');"> </p> </form> </div> <div id="result"> <p id="t1"></p> <p id="t2"></p> </div> </body> </html>
※検証用のソースなもんで、テキストボックスのidの属性値とnameの属性値が異なってんのはご愛嬌。
IE Developer Toolbarのキャプチャ画面
「txt2に変える」ボタンを押した後のname属性値。
ホントは【txt1】のくせして【txt2】とかってなんなんすか、IEさん!!
こんな事じゃあ、今、はてなで話題独占中のあの人とおんなじじゃないっすか!!
じゃあどうやれば変えられるのか?
検証ソースであれば、p要素のinnerHTMLを取得して、innerHTMLごとごっそり…みたいな
変え方しかないみたいです。。。(;゚д゚ )なにそれ…
ホントもう勘弁して下さい…orz
*1:バージョンは6で検証。7では試してません。