0

input type = "text"フィールドがあり、広くサポートされていないHTML5プレースホルダープロパティをデフォルトのテキストの背景画像に置き換えようとしています。

また、JavaScriptでは、フォームがフォーカスを受け取ったときに背景画像を削除し(ユーザーがフィールドに入力したテキストが背景画像のテキストと重ならないように)、入力がフォーカスを失ったときに背景画像を置き換えます(私はonBlurイベント)。

これは、ユーザーが入力フィールドにテキストを入力し、このテキストを送信せずに別のページに移動し、ブラウザの前のページに戻るボタンを押すと、ページが再読み込みされますが、前のテキストでは送信されなかったことを除いて、正常に機能します。まだ背景画像の上の入力フィールドにあります。

ページの読み込み時にフォームに値があるかどうかを確認し、値がある場合は背景画像を削除してこれを修正しようとしましたが、この部分は機能しません。

<input type="text" id="food" onLoad="if(this.value!=''){this.style.backgroundImage='none';}" onFocus="this.style.backgroundImage='none';" onBlur="if(!this.value){this.style.backgroundImage='url(pics/m_form_post.png)';}" name="food"/>

私は可能な解決策を受け入れています。

4

1 に答える 1

1

解決しました!入力要素ではなくbody要素にonloadイベントを入れて、「this」を変更しました。「document.getElementById('food')」へ。どうやらonloadイベントは、ドキュメント自体(body要素)と画像でのみ機能するためです。

だから、これは私の体の要素がどのように見えるかです:

<body onLoad="if(document.getElementById('food').value!=''){document.getElementById('food').style.backgroundImage='none';}">

そして、これは私の入力要素がどのように見えるかです:

<input type="text" id="food" onFocus="this.style.backgroundImage='none';" onBlur="if(!this.value){this.style.backgroundImage='url(pics/m_form_post.png)';}" name="food"/>
于 2011-02-27T17:33:28.843 に答える