2013-01-25 101 views
-1

嗨,我試圖顯示一個警報或樣式能夠彈出框,提交按鈕時按空字段。下面的代碼停止工作,我添加alert("Empty Fields!!");jQuery顯示窗體警報框

var validator = $("#reg_form").validate({ 
    errorLabelContainer: $("#reg_form div.error"), 
    meta: "validate", 
    alert("Empty Fields!!"); 
}); 
+0

請出示您的未來讀者的利益HTML。 – Sparky

回答

1

我認爲http://docs.jquery.com/Plugins/Validation/validate是你的代碼反駁的jQuery插件。

您不能在類聲明中使用警報。你將不得不重寫它是這樣的:

var validator = $("#reg_form").validate({ 
    errorLabelContainer: $("#reg_form div.error"), 
    meta: "validate", 
    submitHandler: function(form) { 
     alert("Empty Fields!!"); 
    } 
}); 

或使用invalidHandler:功能(形式驗證),而不是submitHandler

+3

'submitHandler'防止並在表單驗證成功時替換瀏覽器的默認'submit'處理程序,所以我猜錯誤信息應該在'invalidHandler'中。 –

+0

'invalidHandler'工作 – acctman

0
var validator = $("#reg_form").validate({ 
    errorLabelContainer: $("#reg_form div.error"), 
    meta: "validate", 
    error: function(){alert("Empty Fields!!")}; 
}); 

後只需更換該error財產與一個合適的...

更新::

剛纔檢查JQ文檔...

替換error處理程序與submitHandler

var validator = $("#reg_form").validate({ 
    errorLabelContainer: $("#reg_form div.error"), 
    meta: "validate", 
    submitHandler: function(myForm){alert("Empty Fields!!")}; 
}); 
+0

如果您進一步閱讀文檔,'submitHandler:'是一個回調,只有當表單爲_valid_時纔會觸發。所以這真的沒有任何意義的消息,_「空場」_。 – Sparky

1

朋友以備將來參考

驗證接受一個JSON字符串,它應該格式爲{'key1':'value1','key1':'value1'},所以鍵值和鍵值對之間必須有一個分號,用逗號分隔,所以請用它作爲鍵值對{'error':function(){alert('hello');}}

+0

-1,'錯誤:'甚至不是插件的有效選項。 – Sparky

+0

是的,但我只是給了他一些關於json字符串的清晰,並不是要說與錯誤完全一致,希望他可能不會在關鍵值對:)的地方使用alert,這將通過jquery的使用有所幫助。 期待您的一些建議,以滿足要求,根據您的聲譽! – user1954395

+0

我的建議是看看其他答案是如何格式化的,並爭取準確性,解釋和清晰度。如果你只是想給OP一個小建議,那麼它應該被保留作爲評論而不是答案。 – Sparky

2

我是postin克這個,接受另一個答案後,爲未來的讀者的利益,因爲其他答案似乎每個答案都包含一些技術性錯誤和缺乏解釋。


你不能簡單地插入JavaScript .validate()時,它僅接受在key:value對形式的預定義的選項。請參閱所有可用選項的文檔:http://docs.jquery.com/Plugins/Validation/validate#toptions

正如您所看到的,您需要在可用的callback處理程序之一上將alert("Empty Fields!!");分配到function。由於消息是Empty Fields!!,我將選擇invalidHandler回調選項。 As per the docs,invalidHandler是:「當提交無效的表單時,回調自定義代碼。」

相反,submitHandler:是:「回調處理實際當表單是有效提交。」〜由於郵件中包含Empty Fields!!,因此您不希望在有效表單上顯示該郵件。

.validate()放在document.ready函數中以確保在插件初始化時完全構建HTML表單也是一個好主意。

工作演示:http://jsfiddle.net/QYCwH/

$(document).ready(function() { 
    var validator = $("#reg_form").validate({ 
     errorLabelContainer: $("#reg_form div.error"), 
     meta: "validate", 
     invalidHandler: function(form, validator) { 
      alert("Empty Fields!!"); 
     } 
    }); 
}); 

只是要注意:在這種情況下,有什麼關於分配.validate()一個叫validator變量是有用的。由於.validate()只能調用一旦在DOM準備好初始化插件,你不需要再次參考它,所以真的沒有什麼好處把它分配給一個變量。

如果您需要觸發表單的驗證測試或需要表單當前狀態的布爾值,則只需使用the .valid() method即可。

$("#reg_form").valid(); // triggers a validation check without having to submit 

if ($("#reg_form").valid()) { ... // tests to see if the form is valid