我已經有了一個包含六個表單的頁面。我使用jQuery 2.02,JQM 1.3.1以及jQuery Validate 1.12.0和附加方法附加組件來嘗試驗證表單。我試圖用這個選擇來獲取相關的形式,當用戶點擊提交按鈕:用於多表單頁面的表單選擇器
$('[id^=formEvent_]').validate({
這在HTML中遇到的第一種形式的偉大工程......(formEvent_assign
,見下文小提琴)換句話說,無論用戶實際使用哪種形式,它總是選擇第一種形式。
我已經試過
$('[id^=formEvent_]').closest('form').validate({
設置的形式,例如一個變量:
var formPointer = "formEvent_terminate";
$('#' + formPointer).validate({
還有:
var formPointer = "#formEvent_terminate";
$(formPointer).validate({
其中沒有工作,還有幾個我發現的其他事情。我一直在掙扎幾個小時,這似乎是一件簡單的事情。我可以在console.log
中看到正確的表單對象正在創建,並且我可以看到它是兒童(所有輸入)等,但選擇器不允許驗證運行。
我應該使用什麼樣的選擇器,以便我可以從各個窗體中的提交按鈕正確運行驗證?
這裏是我讀過,並試圖看似相關的SO問題的清單,但最終沒有能夠得到一個原因或其他工作:
Jquery validating a specific form on a page with multiple forms
this input submit selector with closest form submit
下面是完整的驗證代碼&如果表單有效,調用提交例程:
$('[id^=formEvent_]').validate({
submitHandler: function (form, event) {
isFormValid(form, event);
},
rules: {
pcbid_assign: {
required: true,
digits: true,
rangelength: [3, 6]
},
pcbid_terminate: {
required: true,
digits: true,
rangelength: [3, 6]
},
input_reason_terminate: {
required: true
},
input_assign_sbeJobNumber: {
require_from_group: [1, ".assign_group"]
},
input_assign_sbeModelNumber: {
require_from_group: [1, ".assign_group"]
},
input_assign_sbePN: {
require_from_group: [1, ".assign_group"]
},
input_assign_sbeSerialNumber: {
require_from_group: [1, ".assign_group"]
}
},
messages: {
pcbid_assign: "Please enter a valid PCBID with 3-6 digits.",
input_assign_sbeJobNumber: "Please enter a valid job number.",
input_assign_sbeModelNumber: "Please enter a valid model number.",
input_assign_sbePN: "Please enter a valid part number.",
input_assign_sbeSerialNumber: "Please enter a valid serial number.",
pcbid_terminate: "Please enter a valid PCBID with 3-6 digits.",
input_reason_terminate: "Please enter a reason for this PCBID board's termination."
}
});
這裏有一些小提琴的表現出預期的行爲(因爲他們只有在每一個表單):
您是試圖一次驗證所有表單還是隻是「活動」表單? – scunliffe
只是活動的形式。我正在構建一個通過AJAX發送到ASP的通用JS對象。用於進一步處理(更新,查詢或插入MySQL數據庫)的.NET代碼隱藏頁面。總是會發送相同的對象,只是數據會因提交的表單而異。 – delliottg