0

この質問がアーカイブ内の何かと重複していないことを願っています。見ましたが、与えられたアドバイスに従っているように見えるため、問題を解決する答えが見つかりません。

JavaScript を使用して動的フォームを作成しており、ユーザーがフィールドをクリックしたときに各フィールドのプロンプトをクリアしたいと考えています。これは、フォーム フィールドの 1 つについて私が持っているものの一部です。なぜ onlick="this.value=' '"; なのかわかりません。動作していません。どんな助けでも大歓迎です。

    var VMake1 = document.createElement("input"); 
    VMake1.name = "veh_1_make"; 
    VMake1.type = "text";
    VMake1.value= "Please enter the make of vehicle 1";
    if (VMake1.value=="Please enter the make of vehicle 1") {   
        onclick="this.value=''";    }   
    placeVeh1Make.parentNode.insertBefore(VMake1,placeVeh1Make);

よろしくお願いいたします。

4

2 に答える 2

1

フィールドでonFocusイベントを探し、そのイベントでフィールドの値を空の文字列に設定する必要があります。これには、ユーザーがフォーム入力フィールドをタブで移動した場合にフィールドから値をクリアするという利点もあります。

VMake1オンフォーカスを設定するときにも要素を参照する必要があります。したがって、次のようになります。

var VMake1 = document.createElement("input"); 
VMake1.name = "veh_1_make"; 
VMake1.type = "text";
VMake1.value= "Please enter the make of vehicle 1";
VMake1.onfocus = "if (this.value === "Please enter the make of vehicle 1") {this.value='';}";   
placeVeh1Make.parentNode.insertBefore(VMake1,placeVeh1Make);

条件を実際のonfocusコードに移動したことに注意してください。

于 2012-10-18T16:04:00.327 に答える
0
onclick="this.value=''";

と置換する

VMake.onclick="this.value=''"; // or onfocus

または、さらに良いことに、

VMake.addEventListener("click", function(){this.value=''}); // or "focus"

フレームワークを使用する場合、これは jQuery の方法です。

$(VMake).click(function(){ //or .focus(...)
  this.value=''
}); 

あるいは

$(VMake).click(function(){
  $(this).val('')
});
于 2012-10-18T16:12:20.990 に答える