顯示具有 Unobtrusive 標籤的文章。 顯示所有文章
顯示具有 Unobtrusive 標籤的文章。 顯示所有文章

2017年11月30日 星期四

【Jquery Validate and Unobtrusive )】有趣的 驗證機制 發生 'settings' of undefined

有趣的 驗證機制 發生 'settings' of undefined

在 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. (Index:518)
    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="">