2011-03-16 68 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"; 
    } 
};