运行webshim“addCustomValidityRule”

时间:2013-05-08 10:48:17

标签: javascript webshim

我使用webshim检查两个文本输入中的一个是否有文本,并认为自定义有效性听起来是正确的。 http://afarkas.github.io/webshim/demos/demos/webforms/4-webforms-custom-validity.html

有一个名为addCustomValidityRule的方法如下所示:

$.webshims.addCustomValidityRule('testname', function (elem, value) {
    if (value && $(elem).hasClass('test-class') && value != 'foo bar baz') {
        return true; //means yes, it's not valid
    } else {
        return false; //no, it is valid
    }
}, 'you have to enter foo bar baz');

但我找不到任何触发它的方法。如何在“提交点击”上触发或运行它?

2 个答案:

答案 0 :(得分:1)

@David Larson

HTML5表单验证使用setCustomValidity将输入标记为与customError无效。不幸的是,一个字段尽快被标记为无效(提交事件为时已晚)。

这意味着,如果您使用此帮助程序addCustomValidityRule,它将立即在所有输入,select和textarea元素以及检测到更改时运行该函数。 (改变事件)。

如果要调用此函数,只需在给定元素上触发事件'refreshCustomValidityRules'。

答案 1 :(得分:0)

找到了另一种灵魂化的方法,如果有人知道我原来的问题,请告诉,无论如何要知道:)

像webshim一样简单:

        @Html.TextBoxFor(x => x.MessageHeader)
        <textarea id="MessageText" name="MessageText" data-dependent-validation='{"from": "MessageHeader", "prop": "required", "toggle": true}' />

有关此内容的更多信息: http://afarkas.github.io/webshim/demos/demos/webforms/4-webforms-custom-validity.html