我正在使用jQuery選項卡並驗證所有字段被填充之前允許用戶移動到下一個選項卡。在一些選項卡中,有些選項可供用戶從多個選項中進行選擇,有時,用戶將單擊選項1並選擇選項2,但當他們嘗試單擊上一個按鈕時,將驗證這些字段,並且不會讓它們直到他們填補了垃圾UX的所有領域。jQuery選項卡和驗證
我想只驗證點擊下一個按鈕,而不是點擊上一個按鈕。
<a class="btn nexttab navbutton" href="#step1">Previous</a>
<a class="btn nexttab navbutton" href="#step3">Next</a>
這裏是我使用當前的代碼:
var validator = $("#start").validate();
var tabs = $("#tabs").tabs({
select: function(event, ui) {
var valid = true;
var current = $(this).tabs("option", "selected");
var panelId = $("#tabs ul a").eq(current).attr("href");
$(panelId).find(":input").each(function() {
console.log(valid);
if (!validator.element(this) && valid) {
valid = false;
}
});
return valid;
}
});
爲了嘗試解決這個我添加了一個叫下一個按鈕下一個按鈕類只,然後試圖改變這一行我假設檢查任何輸入:
$(panelId).find(":input").each(function() {
到:
$(".nextbutton").click(function() {
,但它允許用戶移動到下一個屏幕而不必填寫所有字段。
我該如何做到這一點,只有向前移動被驗證?
http://jsfiddle.net/553xmzh3/1/
這似乎並沒有爲我工作 - 我讀http://jqueryvalidation.org/reference#skipping-validation-提交使用class = cancel現在已被棄用。此外,我正在使用href作爲上一個/下一個,因爲我在製表符中使用它,可能會有所作爲嗎? – bhttoan
@bhttoan,不贊成或不贊成,它在上面的jsFiddle中工作。新的方式也在這裏工作:http://jsfiddle.net/4zdL8ha3/1/〜你使用錨標籤而不是'type =「submit」'元素的事實與你的失敗有關。您應該首先顯示該標記。 – Sparky
謝謝@Sparky - 錨標記問題的答案是我使用標籤,所以我需要分配一個href鏈接,這就是爲什麼我在第一個地方使用錨標籤,而不是實際的按鈕,我知道沒有有效的方法在不使用onclick – bhttoan