0

JavaScriptを使用してtextareaのデフォルト値、onfocus、onblurを制御する方法を探しています

(私は知っています:
-textareaのデフォルト値は:<textarea name="text"> Default value </textarea>
-html5とjQueryでいくつかの解決策があります。しかしここで私は純粋なJavaScriptの解決策を探しています)

これをtextareaに適用できますか?:

form name="form1" action="comprovar.php" method="post">
    <input type="text" name="name" value="name" 
        onfocus="if (this.value=='name') this.value = '';" 
        onblur="if (this.value=='') this.value = 'name';"   
    />
 </form>

ここでフォーカスとブラーを取得するにはどうすればよいですか?:

<textarea name="text">  Write here </textarea>

例はここにあります:http://jsfiddle.net/sKvMa/

4

4 に答える 4

2

入力から行う方法とまったく同じように、テキストエリアにonfocusおよびを含めることができます。このデモを参照してください:http://jsfiddle.net/sKvMa/1/onblur

<textarea name="text" 
    onfocus="if (this.value=='Write here') this.value = '';" 
    onblur="if (this.value=='') this.value = 'Write here';" >Write here</textarea>
于 2012-11-03T14:22:51.037 に答える
1

JavaScriptはHTML5の機能ですが、実際にはJavaScriptをまったく使用せずにこれを実現できるため、最新のブラウザーで機能します。

<textarea name="text" placeholder="Write here"></textarea>

プレースホルダーの用途によっては、スクリプト化されたソリューションの実装と保守がはるかに簡単であるため、これが適している場合があります。

于 2012-11-03T14:25:24.430 に答える
1

新しいブラウザでは、placeholder属性を使用できます。jsfiddleplaceHolder をサポートしていないブラウザの場合

    if( !'placeholder' in document.createElement("input") ){

        var input =  document.getElementsByTagName("input"),
            textArea = document.getElementsByTagName("textarea");
    for(var k = 0; k < input.length; k++){
         input[k].value= "name";
        input[k].onblur = function(){
            if(this.value == "") this.value = "name"
        }
        input[k].onfocus = function(){
            if(this.value == "name") this.value = ""
        }
    }
    for(var k = 0; k < textArea .length; k++){
          textArea [k].value= "name";
        textArea [k].onblur = function(){
            if(this.value == "") this.value = "name"
        }
        textArea [k].onfocus = function(){
            if(this.value == "name") this.value = ""
        }
    }
}
​​
于 2012-11-03T14:26:55.573 に答える
0

または、このようにjQueryからターゲットを設定できます

var mytext = $("textarea[name='text']").val();

次に、テキストを比較できます

if (mytext == 'Write here')
  //do this
else
  //do that
于 2012-11-03T14:24:34.613 に答える