1

我使用 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');

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

4

2 回答 2

2

@大卫拉尔森

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

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

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

于 2013-05-09T15:29:26.073 回答
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

于 2013-05-08T12:04:35.063 回答