Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
单击以清除表单字段JavaScript_Javascript_Forms - Fatal编程技术网

单击以清除表单字段JavaScript

单击以清除表单字段JavaScript,javascript,forms,Javascript,Forms,我希望这个问题不会重复档案中的内容;我已经看过了,但找不到一个解决我问题的答案,因为我似乎在遵循给出的建议 我正在用JavaScript制作一个动态表单,并希望在用户单击时清除每个字段中的提示。这是我对其中一个表单字段的一部分内容。我不明白为什么onlick=“this.value=”;它不起作用了。任何帮助都将不胜感激 var VMake1 = document.createElement("input"); VMake1.name = "veh_1_make";

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

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

提前感谢您的帮助。

您应该在字段中查找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!它工作得很好。同时也感谢其他的贡献者。