0

我正在尝试使用验证两个字段,LiveValidation但我似乎在任何地方都找不到任何东西。

我正在尝试将EmailandMobile字段中的一个或另一个设为必填,以便在填写其中一个时不需要填写另一个,但两者都可以输入。

这是我的代码:

<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>
4

1 回答 1

0

我认为你可以做到,但你必须稍微破解一下。使用 LiveValidation 库时,LiveValidation 类下没有任何函数可以返回一个常量或布尔值,指示字段已被验证。但是,您可以检查验证消息是否已添加到 DOM。例如,假设我有代码,->

var f1 = new LiveValidation('f1');
f1.add( Validate.Presence );

现在,我想确保 f1 得到验证。为此,我将获取字段“f1”的父元素,检查具有类“LV_valid”的元素,然后从那里开始。我的代码看起来像,->

function isValidated (field) {
    var element = document.getElementById (field);
    for (var i in element.parentElement.getElementsByClassName ("LV_valid")) {
        ...
    }
}

问题是无法确定您检索到的 LV 字段是否与您的字段对应。您可能必须编写自己的验证代码或制作库的修改版本。这就是我现在可以提供的所有输入,希望它是有效的。

于 2014-10-28T00:56:47.320 回答