document.getElementById("id-name").value
を使用してアクセスしようとしている値を持つテキストボックス要素があります。呼び出しが空の文字列ではなくnullを返していることがわかりました。返される値のデータ型はまだ文字列です。 nullは文字列値ですか?
_<input type="text" value="" id="mytext">
_は、var mytextvalue = document.getElementById("mytext").value;
を使用して値を取得しようとしているテキストボックスです
HTMLを投稿すると少し役立つかもしれません。代わりに、要素を最初に取得してから、それがnullかどうかを確認してから、その要素がHTMLで表示されるかどうかを知らずに直接値を要求するのではなく、値を要求できます。
element1 = document.getElementById(id);
if(element1 != null)
{
//code to set the value variable.
}
fyi、これは、入力タグでhtml type = "number"属性を使用している場合に発生する可能性があります。数字以外を入力すると、スクリプトが何が起こっているかを知る前に数字をクリアします。
あなたのコードのために
_var mytextvalue = document.getElementById("mytext");
_
このコードの前にdocument.write()
ステートメントがある場合、mytextvalue
にはnull
が含まれます。したがって、_document.write
_ステートメントを削除すると、変数mytextvalue
に適切なテキストオブジェクトが取得されます。
これは、ドキュメントを変更する_document.write
_が原因です。
このdemo は、Chrome 14、FF3およびFF5(with Firebug):
var mytextvalue = document.getElementById("mytext").value;
console.log(mytextvalue == ''); // true
console.log(mytextvalue == null); // false
console.log
からalert
まで、IE6で目的の出力が得られます。
try this...
<script type="text/javascript">
function test(){
var av=document.getElementById("mytext").value;
alert(av);
}
</script>
<input type="text" value="" id="mytext">
<input type="button" onclick="test()" value="go" />
これを確認してください fiddle そして、null値のアラートを受け取るかどうかを教えてください。コードをそこにコピーし、いくつかのアラートを追加しました。他の人と同じように、nullが返されることもありません。空の文字列が返されます。どのブラウザを使用していますか?
アクセスしようとしているテキストボックスは、javascriptが実行されている時点ではまだページにロードされていないと思います。
つまり、JavascriptがページのDOMからテキストボックスを読み取れるようにするには、テキストボックスが要素として利用可能である必要があります。テキストボックスがページに書き込まれる前にjavascriptが呼び出されると、テキストボックスは表示されないため、NULLが返されます。
HTMLマークアップでvalue属性を省略しているようです。
<input value="" ... >
としてそこに追加します。