在 ASP.MVC 上 頁面提供 驗證 輸入機制
Jquery.Validate (Jquery Validate)
Jquery.Validate.Unobtrusive (Jquery Validate Unobtrusive)
HTML 屬性中 有 data-val="true" 就會去啟用 Jquery.Validate.Unobtrusive 機制
Jquery.Validate.Unobtrusive取代掉Jquery.Vlidate error 錯誤訊息顯示位置
會相對應對照 error 訊息 如下
data-valmsg-for="Name" data-valmsg-replace="true"
並且也會對應到 錯誤訊息總覽(data-valmsg-summary) ,如果你頁面有的話 如下:
【無法送出原因如下】
如果沒有 data-val="true"
會變成 Jquery.Validate 處理
就會直接在你的 驗證INPUT 下新增一個 error label 錯誤訊息
如果你頁面上沒有任 屬性有 required
但你另在 JavaScript 上新增
$("#Name").rules('add', {
required: true,
messages:{
filecheckvalidation: "身分證-正面(必填)"
}
});
就會發生 錯誤 Jquery.Validate.js 錯誤 如下:
jquery.validate.js:147 Uncaught TypeError: Cannot read property 'settings' of undefined
at n.fn.init.rules (jquery.validate.js:147)
at HTMLDocument.
at i (jquery-1.12.4.min.js:2)
at Object.fireWith [as resolveWith] (jquery-1.12.4.min.js:2)
at Function.ready (jquery-1.12.4.min.js:2)
at HTMLDocument.K (jquery-1.12.4.min.js:2)
因為沒你有啟用 Jquery.validate.js init 機制
必需在 javascript 中先提供 以下指令才會啟用
$("#MyForm").validate(); <--- id="" span="">--->