後我有具有檢查盒,輸入字段,下拉菜單等的網頁,指向第一字段驗證
強制性條件使用JavaScript檢查。如果有人未能填寫這些字段,並按下按鈕驗證錯誤彈出。
現在我想實現的是,當有人未能在必填字段中輸入信息時,光標應該轉到導致錯誤的第一個字段。
任何人都可以建議我如何做到這一點?
後我有具有檢查盒,輸入字段,下拉菜單等的網頁,指向第一字段驗證
強制性條件使用JavaScript檢查。如果有人未能填寫這些字段,並按下按鈕驗證錯誤彈出。
現在我想實現的是,當有人未能在必填字段中輸入信息時,光標應該轉到導致錯誤的第一個字段。
任何人都可以建議我如何做到這一點?
添加一個類(像input-error
)爲每一個無效的字段。然後使用類似:
var errors = document.querySelectorAll(".input-error");
if (errors.length > 0) {
errors[0].focus();
}
下面是一個例子:http://jsfiddle.net/NtHzV/1/
這真的一切都取決於你的代碼,你是如何驗證,實際上是與驗證做什麼,以及你的結構HTML是。
與此同時,如果您正在做類似於我的示例的事情,那麼您最好跟蹤第一個輸入錯誤,然後在驗證結束時使用focus()
。事情是這樣的:
UPDATE:
BERGI指出,querySelector
還不如使用(而不是querySelectorAll
),因爲你只是在尋找出錯的第一個輸入。因此,這裏的更新:在querySelector
var error_input = input_area.querySelector(".input-error");
if (error_input !== null) {
error_input.focus();
}
這裏的規格:https://developer.mozilla.org/en-US/docs/DOM/element.querySelector - 請注意,< IE8不支持它。
採用".input-error"
是因爲這是CSS類選擇,並且將找到的第一個(如果有的話)元件與所述類「輸入錯誤」的特定區域。
該行將把頁面聚焦在你指定的元素上。您應該能夠在驗證檢查中實現這一點,以關注不良元素。
document.getElementById("ID_Of_bad_field").focus();
你可以循環遍歷每個字段,然後在第一個空集合焦點。並顯示一個空的字段結果。 – 2013-03-26 16:17:12
是的,使用'.focus()'。請向我們展示您的代碼(驗證和彈出窗口),以便我們告訴您如何獲取第一個輸入。 – Bergi 2013-03-26 16:18:04