单击以清除表单字段JavaScript
我希望这个问题不会重复档案中的内容;我已经看过了,但找不到一个解决我问题的答案,因为我似乎在遵循给出的建议 我正在用JavaScript制作一个动态表单,并希望在用户单击时清除每个字段中的提示。这是我对其中一个表单字段的一部分内容。我不明白为什么onlick=“this.value=”;它不起作用了。任何帮助都将不胜感激单击以清除表单字段JavaScript,javascript,forms,Javascript,Forms,我希望这个问题不会重复档案中的内容;我已经看过了,但找不到一个解决我问题的答案,因为我似乎在遵循给出的建议 我正在用JavaScript制作一个动态表单,并希望在用户单击时清除每个字段中的提示。这是我对其中一个表单字段的一部分内容。我不明白为什么onlick=“this.value=”;它不起作用了。任何帮助都将不胜感激 var VMake1 = document.createElement("input"); VMake1.name = "veh_1_make";
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);
提前感谢您的帮助。您应该在字段中查找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代码中
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('')
});
不要在单击时使用
onclick
。使用addEventListener
。默认值应该是默认值,而不是
的替代值。是否将onclick事件绑定到DOM元素?在您的例子中,您可以动态地将它附加到JavaScript中的DOM元素引用,比如VMake1.addEventListener(IE的attachEvent),谢谢@哈夫·德沃夏克,我是个新手,不知道如何回答你的问题。如何设置onclick的范围?这是设置addEventListener和onFocus范围的相同方法吗?谢谢。我已经在代码中添加了这一行:VMake1.onfocus=“如果(this.value==='请输入车辆的品牌1'){this.value='';}”;但我还是没有得到任何结果。当我点击或点击字段时,什么也没发生。非常感谢,@jandvorak!它工作得很好。同时也感谢其他的贡献者。