我準備了DEMO其中演示[contenteditable]
元素沒有HTML表單。至於我,這是一個問題,因爲jQuery驗證插件需要形式。看看源代碼片段from here從383行開始:[contenteditable]元素和jQuery驗證插件的問題
function delegate(event) {
var validator = $.data(this.form, "validator"),
eventType = "on" + event.type.replace(/^validate/, ""),
settings = validator.settings;
if (settings[ eventType ] && !$(this).is(settings.ignore)) {
settings[ eventType ].call(validator, this, event);
}
}
$(this.currentForm)
.on("focusin.validate focusout.validate keyup.validate",
":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], " +
"[type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], " +
"[type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], " +
"[type='radio'], [type='checkbox'], [contenteditable]", delegate)
// Support: Chrome, oldIE
// "select" is provided as event.target when clicking a option
.on("click.validate", "select, option, [type='radio'], [type='checkbox']", delegate);
在這裏我們可以看到,要素,其中之一是[contenteditable]
監聽事件,然後調用delegate
事件處理程序。
當[contenteditable]
觸發從這個列表中的某些事件,delegate
方法試圖從元素var validator = $.data(this.form, "validator")
驗證,但正如我前面所說[contenteditable]
沒有表(見DEMO)。
有什麼辦法可以解決這個問題嗎?可能是所有[contenteditable]
元素都可以添加表單?
謝謝。現在我使用'v1.14.0'並等待發布 –