これは孔明の罠。
テキスト入力の
<input type=”text” name=”inputA” value=””>
を設けて、この value を JavaScript で取得する場合、
var instr = document.inputA.value;
で取れていたものが、その HTML の先頭に
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
とかあったりすると取れなくなる!
DOCTYPEなんてCSSの解釈が変わるくらいにしか思ってなかったから、
まさかJavaScriptの動きまで変えてくるとは露ほども思わず。
簡単なサンプルページでは動作してるのに、
それを他のページに埋め込むと動かなくなるもんだから
もう意味ワカンネ!状態でした。
じゃどうすれば良いかというと、
<input type="text" id="inputA" value="">
として、スクリプト側では
var elm = document.getElementById('inputA');
var instr = elm.value;
とすればよろしい。
(実際こっちの方が汎用的な書き方らしいです。)
これで3時間くらい悩みましたよ。トホホ。。。
コメント