0

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

我正在使用 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);

预先感谢您的帮助。

4

2 回答 2

1

您应该在该字段上查找 onFocus 事件并将该字段的值设置为该事件的空字符串。如果用户通过表单输入字段进行选项卡,这还具有从字段中清除值的好处。

您还需要VMake1在设置 onfocus 时引用该元素。所以它可能看起来像这样:

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 回答