我正在尝试使用LiveValidation
验证两个字段,但我似乎无法在任何地方找到任何内容。
我正在尝试创建所需的Email
和Mobile
字段中的一个或另一个,以便当一个填充另一个时不需要,但两个可能被输入。
这是我的代码:
<script type="text/javascript">
var Email = new LiveValidation("Email", {validMessage: "", onlyOnBlur: true});
Email.add(Validate.Presence, {failureMessage:"This field is required"});
Email.add(Validate.Format, {pattern: /^[ ]*([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})[ ]*$/i, failureMessage: "A valid email address is required"});
var mobile = new LiveValidation("mobile", {validMessage: "", onlyOnBlur: true});mobile.add(Validate.Presence, {failureMessage:"This field is required"});
var discussion = new LiveValidation("discussion", {validMessage: "", onlyOnBlur: true});discussion.add(Validate.Presence, {failureMessage:"This field is required"});
</script>
答案 0 :(得分:0)
我认为你可以做到,但你必须要破解它。使用LiveValidation库,LiveValidation类下没有返回常量或布尔值的函数,表明字段已经过验证。但是,您可以检查验证消息是否已添加到DOM。例如,假设我有代码, - &gt;
var f1 = new LiveValidation('f1');
f1.add( Validate.Presence );
现在,我想确保f1已经过验证。为此,我将得到字段'f1'的父元素,检查具有类'LV_valid'的元素,然后从那里开始。我的代码看起来像是,&gt;
function isValidated (field) {
var element = document.getElementById (field);
for (var i in element.parentElement.getElementsByClassName ("LV_valid")) {
...
}
}
问题在于无法识别您检索到的LV字段是否与您的字段对应。您可能必须编写自己的验证代码或制作库的修改版本。这就是我现在可以提供的所有输入,希望它是有效的。