2009-10-26 9 views
27

すでにテキストが入っているhtml入力フィールドを簡単に作成できます。しかし、ユーザーが入力フィールドをクリックすると、テキストは消えずにそのまま残ります。ユーザは、入力するテキストを手動で削除しなければならない。ユーザーが入力フィールドボックスをクリックしてテキストが消えると、入力フィールドをどのように作成できますか?HTMLフィールドのテキストをクリックすると消えますか?

答えて

3

どうやってこのようなことができますか?

<input name="myvalue" type="text" onfocus="if(this.value=='enter value')this.value='';" onblur="if(this.value=='')this.value='enter value';">

それは与えられた値を復元空白のままにする場合、ユーザは、自分の値を入力した後、これが初めて焦時クリアされますが、その後の焦点で、その後は明らかではないだろう。それを達成するために

20

、あなたはONFOCUS二つの事象を使用することができますし、onBlurイベント:あなたが何をしたいか

<input type="text" name="theName" value="DefaultValue" 
    onblur="if(this.value==''){ this.value='DefaultValue'; this.style.color='#BBB';}" 
    onfocus="if(this.value=='DefaultValue'){ this.value=''; this.style.color='#000';}" 
    style="color:#BBB;" /> 
+0

とどのようなユーザーがvlueを入力しない場合、それはブランク値またはdefaul値を渡すのだろうか?私のユースケースもこれと似ていますが、ユーザーが何も入力しないときに空白の値を割り当てる必要があります。なにか提案を? placholder属性を使用しない – mahesh

+0

@maheshあなたができることは、あなたが望むテキストを書き込んだ背景イメージを追加し、イメージを見えなくするonClickイベントリスナーを追加することです。 –

+0

IE9をサポートしなければならない場合、これは素晴らしい解決策です!ありがとう! –

139

あなたが入力ボックスのデフォルト値を設定することができますHTML5属性placeholderを使用している:

これは、あなたが探しているものを達成するはずです。ただし、プレースホルダ属性はInternet Explorer 9以前のバージョンではサポートされていないため、注意してください。

+2

HTML5はこの問題をプレースホルダ属性で解決します。イベントを再度管理する必要はありません。良い答え – Ron

+0

入力プレースホルダ属性はIE9とIE8ではサポートされていません...もっとお待ちくださいhttp://caniuse.com –

+0

ユーザーが入力を開始したときにプレースホルダを消す方法はありますか? 「集中した」? –

3

これを試してみてください。

<label for="user">user</label> 
<input type="text" name="user" 
onfocus="if(this.value==this.defaultValue)this.value=''"  
onblur="if(this.value=='')this.value=this.defaultValue" 
value="username" maxlength="19" /> 

これが役に立ちます。

<input type="submit" id= "submitBtn" value="Submit"> 

が、その後のjsファイルでこの小さなjQueryのを置く::これはあなたの送信ボタンです

<input name="myvalue" id="valueText" type="text" value="ENTER VALUE"> 

+0

のみで、ユーザーがvlueを入力しないと、空白値またはデフォルト値が渡されますか?私のユースケースもこれと似ていますが、ユーザーが何も入力しないときに空白の値を割り当てる必要があります。なにか提案を? placholder属性の使用はありません – mahesh

5

これは、私はすべてのあなたの問題を解決する必要があります解決策を考えるように簡単です

//this will submit only if the value is not default 
$("#submitBtn").click(function() { 
    if ($("#valueText").val() === "ENTER VALUE") 
    { 
     alert("please insert a valid value"); 
     return false; 
    } 
}); 

//this will put default value if the field is empty 
$("#valueText").blur(function() { 
    if(this.value == ''){ 
     this.value = 'ENTER VALUE'; 
    } 
}); 

//this will empty the field is the value is the default one 
$("#valueText").focus(function() { 
    if (this.value == 'ENTER VALUE') { 
     this.value = ''; 
    } 
}); 

古いブラウザでも動作します。プラスそれは簡単に必要に応じて通常のjavascriptに変換することができます。

このような単純な
+0

私たちがサポートしなければならないIE9上で動作します。だから私はプレースホルダーのことを使うことができませんでした。テキストボックスの値の設定を1か所に保持するために、私はjQueryを使用してドキュメントのボックスに値を設定しました。 $(ドキュメント).ready(関数(){ドキュメントのロードに \tは、/ *設定された検索入力ボックスの値*/ \t $( '#valueText')のVal( "値を入力"); } – atsurti

4

<input type="text" name="email" value="e-mail..." onFocus="this.value=''">

関連する問題