2011-03-16 133 views
9

的焦点文本字段我想要清除文本框,当用户点击该如何清除文本字段

<input name="name" type="text" id="input1" size="30" maxlength="1000" value="Enter Postcode or Area" onfocus=="this.value=''" />

+2

请不要这样做。如果我想修复一封错字信,我不想重新键入整个事情。 (大多数想要这样做的人滥用value属性来替换'

+0

你可以使用jQuery吗? – 2011-03-16 10:48:21

+1

这是为了清除最初出现在窗体上的默认值或示例文本? – 2011-03-16 10:49:57

回答

9

要做到这一点,你需要使用脚本语言,可能的JavaScript。这里的一个例子

<input type='text' value'Some text' onclick='javascript: this.value = ""' /> 

希望这会有所帮助。

编辑:

为了满足什么大卫解释这里是在情况下,第二个例子是,你在找什么

<script type='javascript'> 
    var clear = true; 
    function clear(obj) 
    { 
     if(clear) 
     { 
      obj.value = ''; 
      clear = false; 
     } 
    } 
</script> 

<input type='text' value'Some text' onfocus='clear(this);' /> 
+0

感谢这对我工作 – 2011-03-16 11:01:02

+0

我会建议没有人曾经使用这种方法。这是一个可怕的方式去做这件事。请不要使用这种方法。 这个例子的问题是每次有人点击这个输入时,内容都会被清除。即使用户键入内容然后回来编辑该字段,文本也会被清除。 另一个问题是,如果用户标签到输入,内容没有被“点击”,因此不会自行清除。 有了这两个问题,这个例子是一个可怕的方式来解决这个问题,并创建各种可访问性问题。 – ORyan 2014-03-13 23:35:50

+0

@ORyan,这个最初的代码是对最初问题的回答。在获得更多信息后,编辑答案并在该例中仅在第一次点击时清除测试。所以我几乎觉得它很可怕。是的,它只做了点击,所以我已经更新了它,所以今晚你可以睡得更好。 – 2014-03-14 09:49:30

2

您可以使用<input ... onfocus="this.value='';"/>

这样,该字段在获得焦点时将被清除。但是,如果您只想在用户单击它时清除它(例如,当该字段使用键盘获得焦点时不是),则使用onclick而不是onfocus

但是,正如David Dorward在评论中指出的,用户可能不会期望这种行为。因此,请注意在真正特定的字段(如搜索字段)上设置此功能。

5

使用jQuery库:

<input id="clearme" value="Click me quick!" /> 

$('#clearme').focus(function() { 
    $(this).val(''); 
}); 
18

除非你正在做一些具体的事情,你只需要清除的onclick ,我会建议(正如其他人已经注意到)使用重点行动来代替。这样,如果有人使用标签导航它也将清除默认文本。

您还可以使用的onblur来检查它是否是空的,以将其还原:

<input type="text" value="Default text" name="yourName" onfocus="if(this.value == 'Default text') { this.value = ''; }" onblur="if(this.value == '') { this.value = 'Default text'; }"> 
1

这是我如何使用它的温度转换器/计算器 - 当用户类型(KEYUP),文本输入框使用分配的功能进行计算;当用户选择其他文本输入(只有两个输入)时,所选文本输入将被清除。

HTML:

<p class="celcius"><h2 style="color:#FFF">Input:</h2> 
    <input name="celsius" type="text" class="feedback-input" placeholder="Temperature (Celsius)" onkeyup="Conversion()" onfocus="this.value='';" id="celsius" /> 
</p> 

    <hr> 

    <h2 style="color:#FFF">Result:</h2> 

<p class="fahrenheit"> 
    <input name="fahrenheit" type="text" class="feedback-input" id="fahrenheit" onkeyup="Conversion2()" onfocus="this.value='';"placeholder="Temperature (Fahrenheit)" /> 
    </p> 

的JavaScript:

function Conversion() { 
    var tempCels = parseFloat(document.getElementById('celsius').value); 
     tempFarh =(tempCels)*(1.8)+(32); 
     document.getElementById('fahrenheit').value= tempFarh; 
} 

function Conversion2() { 
    var tempFarh = parseFloat(document.getElementById('fahrenheit').value); 
     tempCels =(tempFarh - 32)/(1.8); 
     document.getElementById('celsius').value= tempCels; 
} 
0

试试这个,它为我工作

添加到您输入的标签此

<code> 
onfocus="this.value='';"</code> 

例如,如果你的代码是

<code> 
<input type="text" value="Name" /></code> 

使用这样

<code><input onfocus="this.value='';" type="text" value="Name" /></code> 
0
function Clear (x) {if (x.cleared) {} else {x.value = ""; x.cleared = true}} 

onfocus = "Clear (this)" 
+0

请添加一些说明。 – 2015-04-20 07:45:54

+0

我真的看不到这一点; - 或者代码透明明显,或者读者还没有充分了解如何使用它。它的目的是作为答案,而不是作为教程。 – 2015-04-20 07:57:58

+0

几句话的解释会让这个例子更好。 – Thom 2015-04-20 12:12:42

2

或者你可以简单地使用占位符属性 例如<input name="name" type="text" id="input1" size="30" maxlength="1000" placeholder="Enter Postcode or Area"/>

+0

[简单的CSS技巧](https://css-tricks.com/snippets/css/style-placeholder-text/)甚至可以在最近的浏览器中设置占位符的样式。在Chrome中:':: - webkit-input-placeholder {color:#000;}' – Alrekr 2016-09-28 08:51:04

0

添加以下脚本到你的js文件中:

var input1 = document.getElementById("input1") 

input1.onfocus = function() { 
    if(input1.value == "Enter Postcode or Area") { 
     input1.value = ""; 
    } 
}; 

input1.onblur = function() { 
    if(input1.value == "") { 
     input1.value = "Enter Postcode or Area"; 
    } 
};