2013-03-26 16 views
0

後我有具有檢查盒,輸入字段,下拉菜單等的網頁,指向第一字段驗證

強制性條件使用JavaScript檢查。如果有人未能填寫這些字段,並按下按鈕驗證錯誤彈出。

現在我想實現的是,當有人未能在必填字段中輸入信息時,光標應該轉到導致錯誤的第一個字段。

任何人都可以建議我如何做到這一點?

+0

你可以循環遍歷每個字段,然後在第一個空集合焦點。並顯示一個空的字段結果。 – 2013-03-26 16:17:12

+0

是的,使用'.focus()'。請向我們展示您的代碼(驗證和彈出窗口),以便我們告訴您如何獲取第一個輸入。 – Bergi 2013-03-26 16:18:04

回答

2

添加一個類(像input-error)爲每一個無效的字段。然後使用類似:

var errors = document.querySelectorAll(".input-error"); 
if (errors.length > 0) { 
    errors[0].focus(); 
} 

下面是一個例子:http://jsfiddle.net/NtHzV/1/

這真的一切都取決於你的代碼,你是如何驗證,實際上是與驗證做什麼,以及你的結構HTML是。

與此同時,如果您正在做類似於我的示例的事情,那麼您最好跟蹤第一個輸入錯誤,然後在驗證結束時使用focus()。事情是這樣的:

http://jsfiddle.net/NtHzV/2/

UPDATE:

BERGI指出,querySelector還不如使用(而不是querySelectorAll),因爲你只是在尋找出錯的第一個輸入。因此,這裏的更新:在querySelector

var error_input = input_area.querySelector(".input-error"); 
if (error_input !== null) { 
    error_input.focus(); 
} 

http://jsfiddle.net/NtHzV/3/

這裏的規格:https://developer.mozilla.org/en-US/docs/DOM/element.querySelector - 請注意,< IE8不支持它。

採用".input-error"是因爲這是CSS類選擇,並且將找到的第一個(如果有的話)元件與所述類「輸入錯誤」的特定區域。

+0

爲什麼要查詢所有人? – Bergi 2013-03-26 16:21:07

+0

@Bergi:你會如何獲得第一個? – BalusC 2013-03-26 16:21:33

+1

'document.querySelector()'? – Bergi 2013-03-26 16:25:46

1

該行將把頁面聚焦在你指定的元素上。您應該能夠在驗證檢查中實現這一點,以關注不良元素。

document.getElementById("ID_Of_bad_field").focus();