带有dirtyforms jQuery插件的DropDownList
Posted
技术标签:
【中文标题】带有dirtyforms jQuery插件的DropDownList【英文标题】:DropDownList with dirtyforms jQuery plugin 【发布时间】:2013-01-09 12:48:47 【问题描述】:我想使用 jQuery 插件dirtyForms 来检查我的表单是否脏。 但看起来 DropDownList 不是基于标准的 select html 标签。 相反,它似乎正在使用
HTML 标记。 为什么选择这个?因此,当我只更改 DropDownList 值时,jquery 插件dirtyForms 不会将我的表单设置为脏...【问题讨论】:
【参考方案1】:我对 kendo-ui 或dirtyForms 一无所知,所以我会尽力通过查看 API 来回答这个问题。 kendo-ui DropDownList 有一个change
event,它看起来只有在 DropDownList 中的输入发生更改时才会被触发。此外,dirtyForms 还为您提供 manually setting the form to dirty。将两者放在一起,我猜以下应该可行。
$("#dropdownlist").kendoDropDownList(
change: function(e)
$('form').dirtyForms('setDirty');
);
编辑:由于您似乎希望这会影响所有 DropDownList,您可以执行以下操作。
kendo.ui.DropDownList.fn._change = function(e)
if(this.element && this.element.form)
$(this.element.form).dirtyForms('setDirty');
这似乎有点骇人听闻,但我不确定是否会推荐这样做。它可能会破坏其他东西。
【讨论】:
嗨,你是对的,这就是我设法做到这一点的方法,但你不觉得在所有 DropDownLists 上这样做有点难看吗? 查看我的编辑。它可能对你有用;但话又说回来,我不确定我会推荐它。【参考方案2】:这听起来像是在 pull request 27 中修复的错误,它允许跨浏览器与选择元素兼容。
或者,可能是您的标记中没有properly ignored all of the 3rd party widgets on the page 和have anchor elements。
【讨论】:
以上是关于带有dirtyforms jQuery插件的DropDownList的主要内容,如果未能解决你的问题,请参考以下文章
DirtyForms 与 jQuery Validate 的 submitHandler() 方法一起使用时无法正常工作