我希望这个问题不会在档案中重复;我看了,但找不到解决我问题的答案,因为我似乎遵循了给出的建议。
我正在使用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);
提前感谢您的帮助。
答案 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('')
});