在MVC中,在Modeel可以很方便的方式協助我們去做前端的資料驗證(下方程式碼),但是如果使用了DataType.EmailAddress,即使我們有輸入中文的ErrorMessage的錯誤訊息,但是在前端執行時還是會出現英文的錯誤訊息:Please enter a valid email address.,那我們該如何讓它出現"中文"的錯誤訊息呢?
前言
在MVC中,在Modeel可以很方便的方式協助我們去做前端的資料驗證(下方程式碼),但是如果使用了DataType.EmailAddress,即使我們有輸入中文的ErrorMessage的錯誤訊息,但是在前端執行時還是會出現英文的錯誤訊息:Please enter a valid email address.,那我們該如何讓它出現"中文"的錯誤訊息呢?
[Display(Name = "電子信箱:")]
[Required(ErrorMessage = "註冊需要您的電子信箱驗證")]
[DataType(DataType.EmailAddress, ErrorMessage = "請輸入正確的電子信箱")]
public string Email { get; set; }
內文
--2013/04/12更新--
感謝Kevin前輩跟KK前輩指點,今天小弟使用這個方法可以讓她使用中文
首先,我們需要到這個網站上下載或複製程式碼
(function ($) {
$.extend($.validator.messages, {
required: "必填",
remote: "請修正此欄位",
email: "請輸入正確的電子信箱位置",
url: "請輸入合法的URL",
date: "請輸入合法的日期",
dateISO: "請輸入合法的日期 (ISO).",
number: "請輸入數字",
digits: "請輸入整數",
creditcard: "請輸入合法的信用卡號碼",
equalTo: "請重複輸入一次",
accept: "請輸入有效的後缀字串",
maxlength: $.validator.format("請輸入長度不大於{0} 的字串"),
minlength: $.validator.format("請輸入長度不小於 {0} 的字串"),
rangelength: $.validator.format("請輸入長度介於 {0} 和 {1} 之間的字串"),
range: $.validator.format("請輸入介於 {0} 和 {1} 之間的數值"),
max: $.validator.format("請輸入不大於 {0} 的數值"),
min: $.validator.format("請輸入不小於 {0} 的數值")
});
}(jQuery));
然後再我們專案中新增一個JS檔案:jquery.validate.plus.js
原本我們的錯誤訊息是像這樣...
改好JavaScript後我們的錯誤訊息會是這樣
--結尾--
這個方法是利用JS檔案的優先順序做的,JS檔案越慢載入到頁面中優先的層級越高,所以我們將這個檔案掛載在驗證的JS檔案越底層,如此一來錯誤的訊息就會是我們在額外加入的檔案中的訊息,而不是原本的英文錯誤訊息囉!
大家好我是饅頭,希望大家喜歡我的文章
如果有錯誤的地方請不吝指教 ^_^