2017-02-14 2 views
0

入力フィールドにはデフォルト値が設定されています。フィールド内をクリックするとデフォルト値が削除されますが、値の挿入が空白でマウスカーソルがフィールドを離れる場合は、デフォルト値に戻す必要があります。デフォルト値は、データベースに書き込む必要があります。例えば入力フィールド - onClickイベントが発生したときに値を削除し、設定されていない場合は値を復元します。

デフォルト値:I入力フィールドを残して、値が空白の場合は0

、デフォルト値が復元されます。

<input type="text" onclick="if(this.value == 'value') { this.value = ''; }" value="value" /> 

クリックした後に値を入力するとデフォルト値に戻すにはどうすればよいですか?

おかげ

+0

あなたが尋ねていることを理解することは非常に難しいです。この質問を再検討/改訂することは可能でしょうか(慎重な読者のために 'filed' <->' field'のような明白なタイプミスがあります)? – Wolf

+0

フィールドにフィールドが変更されました。私のフレーズを理解することは難しいですか?入力フィールドを離れ、値が空白の場合は、デフォルト値に戻します。 – Frankie

+0

したがって、if条件に値が "空"であるかどうかのチェックを追加してください... – CBroe

答えて

1

ちょうど怒鳴る例のようfocusblurイベントにご入力にlistenerを添付する。

var inputToCheck = document.getElementById("inputNum"); 
 
inputToCheck.initialValue = inputToCheck.value || ''; 
 

 
inputToCheck.addEventListener("focus",function(e) { 
 
    this.value == this.initialValue ? this.value = "" : ""; 
 
}); 
 

 
inputToCheck.addEventListener("blur",function(e) { 
 
    this.value == "" ? this.value = this.initialValue : ""; 
 
})
<input type="text" id="inputNum" value="0" />

jQueryを使って別:

var inputToCheck = $("#inputNum"); 
 
inputToCheck.data("initialValue", inputToCheck.val()); 
 

 
inputToCheck.on("focus",function(e) { 
 
    this.value == $(this).data("initialValue") ? this.value = "" : ""; 
 
}).on("blur",function(e) { 
 
    this.value == "" ? this.value = $(this).data("initialValue") : ""; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" id="inputNum" value="0" />

+1

これはハードコードされたデフォルト(0)で動作しますが、マークアップで 'value =" "'があらかじめ定義されているものであれば、答えを改善できればいいです。 – Connum

+0

@Connumうん、私は同意する:)あなたが言ったように修正されました。 –

+0

erm ...編集は実際に私が提案したものではありません。これでマークアップから値を削除しました。私が提案したのは、一時的にマークアップの値を保存してから、それをチェックすることでした(ハードコードされた0ではなく)。 – Connum

0

は、プレースホルダを使用していあなたの条件 に役立つ属性?

フィールドが空白の場合はデフォルト値が表示されますが、フィールド値を指定してフォームが送信されたときにはサーバーに送信されません。ユーザーが空白でフォームを送信したときにデフォルト値を保存する場合値をデフォルトに設定するフォームのobsubmitハンドラを作成するか、値が空白の場合はdbにデフォルト値を保存するためにサーバ側で実装します。

+0

ありがとうございますが、プレースホルダの値0(プレースホルダ= "0")はデータベースに保存されません – Frankie

+0

これは、フォームの送信用の関数を追加し、値が空白の場合はフィールドの値をデフォルトに設定します。 –

関連する問題