我使用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');
但我找不到任何触发它的方法。如何在“提交点击”上触发或运行它?
答案 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