2013-09-30 92 views
3

嗯,我正在製作我的第一個登錄頁面,一些不太專業的東西,我希望能夠自己製作簡單的網頁。文字在點擊時消失,但輸入的新文字消失到

所以我的問題是,只要你點擊文本框,文本消失。它應該。但是當用戶輸入文本時,點擊文本框並點擊它,文本消失。

我該怎麼做才能讓新輸入的文字不會消失?

我對文本字段當前代碼:

http://pastie.org/8366114

<input type="text" value="Enter Your First Name" id="form" 
    onblur="javascript:if(this.value=='')this.value='Enter Your First Name';" 
    onclick="javascript:if(this.value=='Enter Your First Name')this.value='';" 
    onFocus="this.value=''"> 
</input></br> 
<input type="text" value="Enter Your Email" id="form" 
    onblur="javascript:if(this.value=='')this.value='Enter Your Email';" 
    onclick="javascript:if(this.value=='Enter Your Email')this.value='';" 
    onFocus="this.value=''"> 
</input></br> 
<input type="text" value="Enter Your Phone Number" id="form" 
    onblur="javascript:if(this.value=='')this.value='Enter Your Phone Number';" 
    onclick="javascript:if(this.value=='Enter Your Phone Number')this.value='';" 
    onFocus="this.value=''"> 
</input></br> 
<input type="submit" class="button" name="submit" value=""></input> 

我不張貼在這裏道歉,但我不知道該怎麼辦的代碼塊的東西..

+1

複製的廣告粘貼代碼,然後高亮顯示,如果按 「Ctrl + K」 –

+0

有是滿足你的答案,你可以通過點擊答案旁邊的檢查來接受它。 –

回答

5

你需要的JavaScript都做,這是

<input type="text" value="Enter Your First Name" 
onblur="if(this.value=='')this.value='Enter Your First Name';" 
onfocus="if(this.value=='Enter Your First Name')this.value='';" /> 

DEMO

但是你可以簡單地使用HTML5 placeholder

  1. 不使用相同的id多一次,而是使用class
  2. 輸入自動關閉(如<br>
  3. </br>是錯誤的使用<br><br />

這裏是你的代碼的工作版本,我還加submit作爲value爲您button

<input type="text" placeholder="Enter Your First Name" class="form"><br/> 
<input type="text" placeholder="Enter Your Email" class="form"><br/> 
<input type="text" placeholder="Enter Your Phone Number" class="form"><br/> 
<input type="submit" class="button" name="submit" value="submit"> 

DEMO

+0

我沒有給提交按鈕留下一個值,因爲它實際上將文本「提交」放在圖像按鈕上。我的按鈕是一種圖像類型的按鈕。不能相信我正在做這一切的JavaScript和嘗試解決IE所有這一次,當有這個簡單的解決方案.. Ty :) – Travis

+0

@Travis順便說一句,即使在JavaScript中,你可以寫一個函數來減少代碼非常顯着。 –

4
<input type="text" value="Enter Your First Name" id="form" onblur="if(this.value=='')this.value='Enter Your First Name';" onfocus="if(this.value=='Enter Your First Name')this.value='';" /> 

,或者如果你正在使用HTML5,你可以使用佔位符屬性:

<input type="text" placeholder="Enter Your First Name" id="form" /> 
0

你必須做出onfocus事件一樣的onclick事件,e.g:

onfocus="javascript: if (this.value == 'Enter Your First Name') this.value = '';" 
0
onFocus="this.value=''" 

這導致文本字段被重置爲空白無條件。

您可能只需要onclick或onfocus這裏,因爲onfocus會考慮tabed字段以及用鼠標點擊它,我建議將代碼從onclick移到onfocus並刪除onclick。從形式

0

刪除內容的onclick:

在HAML

= f.text_field :title, :value => 'Name', :onfocus => "if (this.value=='Name') this.value='';" 

在HTML:

<input id="project_title" name="project[title]" onfocus="if (this.value=='Name') this.value='';" type="text" value="Name"> 
+0

oops%)foget html5屬性placeholder =「您的數據」 –