onclick清除表单字段JavaScript

时间:2012-10-18 15:58:52

标签: javascript forms

我希望这个问题不会在档案中重复;我看了,但找不到解决我问题的答案,因为我似乎遵循了给出的建议。

我正在使用JavaScript制作动态表单,并希望在用户点击它时清除每个字段中的提示。这是我对其中一个表单字段的一部分。我无法弄清楚为什么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);

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

您应该在字段上查找onFocus事件,并将该字段的值设置为该事件上的空字符串。如果用户通过表单输入字段选中,则还可以从字段中清除值。

设置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代码。

答案 1 :(得分: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('')
});