- 最初に、ページの読み込み時にテキストボックスに何も含まれていないことを確認したいですか?
次に、それに何らかの値を割り当てます。
if (document.getElementById("txtBoxID").value == null) { document.getElementById("txtBoxID").value = "Some text here"; }
しかし、「JavaScript ランタイム エラー: 未定義または null 参照のプロパティ '値' を設定できません」というエラーが表示されます。
7 に答える
ページで定義する前に要素にアクセスしようとしている可能性があるため、window.load
イベントでそのコードを実行するか、そのコードを直前に移動する必要があります</body>
代わりplaceholder
に、多くの最新のブラウザでサポートされている属性を使用できます
<input type="text" id="txtBoxId" placeholder="Some text here" />
入力に値がない場合は、代わりにプレースホルダーの値が表示されます
(この動作のポリフィルは古いブラウザーで使用できます)。
null (または未定義) オブジェクトのプロパティ 'value' にアクセスしようとしています。ID がtxtBoxID
ページが読み込まれた後に上記のコードを実行していますか?
window.onload = function() {
if (document.getElementById("txtBoxID").value == null) {
document.getElementById("txtBoxID").value = "Some text here";
}
}
window.onload
ページがロードされているかどうかを確認する最良の方法ではないことに注意してください。ブラウザの仕様に依存します。window.addEventListener または window.attachEvent または IE を参照してください。
これは、DOM の準備ができていないためです。読み込みが完了するまで待ちます。
window.onload=function(){
if (document.getElementById("txtBoxID").value == null) {
document.getElementById("txtBoxID").value = "Some text here";
}
};
テキストボックスの値に対して null をテストするのは安全ではありません。代わりに空の文字列を使用する必要があります。これを示すjsFiddleを作成しました:
<input type="text" id="txtBx" />
document.getElementById("txtBx").value = null;
alert("test 1 textbox is null \n" + (document.getElementById("txtBx").value == null));
alert("test 2 textbox is empty string \n" + (document.getElementById("txtBx").value == ""));
(私はChromeを使用しています)
以下のコードを試してください。行の最初に値を null に設定する必要があります
Name: <input type="text" id="myText" value=''>
デモは次のとおりです。
function func() {
if (document.getElementById("myText").value == '') {
document.getElementById("myText").value = "Some text here";
} else {
alert("not null");
}
}
Name: <input type="text" id="myText" value="">
<p>Click the button to change the value of the text field.</p>
<input type="button" id="button" value="Click Me" onClick="func();" />
ここで利用可能な JQuery がある場合は、求めていることを達成する別の方法があります。document.ready 関数では、テキスト ボックスの ID を使用してテキストの値を取得し、それを JQuery でラップできます。これにより、.val() 関数を使用して、空の場合にテキスト ボックスの値を確認して置き換えることができます。
$(document).ready(function () {
if($('#id-of-your-textbox').val() == ' ')
{
$('#id-of-your-textbox').val('some text');
}
});