2012-02-17 69 views
0

因此,我已經使用預填表格字段(如「名字」,「電話」或「郵編」)繼承了此表單,以便用戶知道如何處理字段。但是,如果任何人只是按下按鈕,表單將傳遞「名字」,「電話」或「郵編」到數據庫中。在onFocus中似乎沒有工作。有任何想法嗎?預填表格字段

<input type="" maxlength="25" name="firstname" tabindex="6" id="firstname" class="textfield" value="First Name" onFocus="if (this.value == 'First Name') {this.value = '';}"> 

由於提前, -Bob

+1

如果您使用支持HTML5的瀏覽器,請嘗試使用placeholder =「First Name」 – 2012-02-17 02:01:38

+1

要充分利用Stack Overflow,您需要付出一些努力。你的問題需要提供足夠的背景和細節,以便讓喜歡幫助這樣做的人們(比如我自己!)。在這種情況下,請:顯示HTML表單的片段,顯示所涉及的任何Javascript,並詳細說明預期的/期望的行爲。謝謝! – 2012-02-17 02:02:56

+0

> – bobbiloo 2012-02-17 02:13:20

回答

0

正如其他人所建議的,使用placeholder屬性來設置字段的'標籤'。另外,如果您已經使用jQuery來簡化您的Javascript,那麼您可以使用像this one這樣的插件,它將爲非HTML兼容瀏覽器添加對佔位符屬性的支持。

這些插件通常還會處理在表單提交給服務器之前從字段中刪除佔位符文本的關鍵步驟,該服務器應將空值發送到服務器而不是佔位符文本。

+0

另外,如果可訪問性是一個問題,那麼如果你還可以包含'

1

首先它是不好的做法,標籤應該是標籤,放在前場,他們正在標記。不在裏面。

Name: [________] 
=== NOT === 
[Name____] 

就像在紙上的形式。

如果您必須在框中有文本,請使用placeholder屬性。但請注意,只有最新的瀏覽器支持它。

至於解決提交默認值的問題,只需檢查您要輸入數據庫的值是否爲默認值,如果是,則阻止它。

+0

這有什麼不好?有些情況下可能比另一個更可取。 – 2012-02-17 02:25:03

+0

一旦用戶用默認值替換了默認值,他們就不再有標籤來告訴他們該字段的用途。 – RobG 2012-02-17 02:28:36

0

除了什麼Kolnik說,你可以做的是有使用類似的默認值文本輸入一個簡單的驗證:

if (input.value == input.defaultValue || /^\s*$/.test(input.value)) { 
    // field value isn't valid 
} 

檢查,如果該值仍然是默認,爲空或空白。但請記住,客戶端驗證是完全不可靠的,所以在服務器上進行真正的驗證。

+0

我相信你的意思是'/^\ s * $ /。test(input.value)' – zzzzBov 2012-02-17 02:29:18

+0

啊,是的,謝謝。不太可能的價值將是一個RegExp。 :-) – RobG 2012-02-17 03:20:56

+0

感謝大家對「佔位符」的提示。這正是醫生的要求。只是最後一件事...我能做些什麼關於IE 7或8? (恐怕我知道答案;-) – bobbiloo 2012-02-18 22:06:35