0

我在 joget 中创建了三个电子邮件文本字段。我希望每个电子邮件字段的电子邮件都是唯一的。在此处输入图像描述

附上屏幕短片。如果他们中的任何一个的电子邮件ID相同,我想显示错误!

我怎样才能做到这一点?

`import java.util.Arrays;
import org.joget.apps.app.service.AppUtil;
import org.joget.apps.form.model.Element;
import org.joget.apps.form.model.Form;
import org.joget.apps.form.model.FormData;
import org.joget.apps.form.service.FormUtil;

public boolean validate(Element element, FormData formData, String[] values) {
    boolean result = true;

    //get field 1 value from form data object
    String field1Id = "field1";
    Form form = FormUtil.findRootForm(element);
    Element field1 = FormUtil.findElement(field1Id, form, formData);

    if (field1 != null) {
        //get value of field 1
        String[] compareValues = FormUtil.getElementPropertyValues(field1, formData);

        //compare the value of field 2 and field 1 are equals
        if (!Arrays.equals(values, compareValues)) {
            String id = FormUtil.getElementParameterName(element);
            formData.addFormError(id, "Value not equal!!!!");
            result = false;
        }
    } else {
        //ignore if the field 1 not exist
    }

    return result;
}

//call validate method with injected variable
return validate(element, formData, values);`

我已经编写了这段代码,但没有成功。如果您可以帮助我处理 J 查询代码/JS 代码,我真的会帮助我。AS joget 支持

4

1 回答 1

0

如果您在 HTML 页面中使用它,您可以使用简单的 javascript 代码,假设电子邮件 ID 的输入标签的 ID 为“email1、email2、email3”。然后

function validate()
{
email1 = document.getElementById("email1").value;
email2 = document.getElementById("email2").value;
email3 = document.getElementById("email3").value;

if(email1 == email2 || email2==email3 || email3==email1)
  {
     //Do something here

  }
}

然后,您可以通过在提交按钮上添加事件侦听器在提交函数之前调用验证函数来验证电子邮件 ID 是否相同。
或者,如果您想在用户输入电子邮件时检查该值,那么您可以input在所有电子邮件输入标签上添加事件侦听器。

document.getElementById("email1").addEventListener('input', validate);
document.getElementById("email2").addEventListener('input', validate);
document.getElementById("email3").addEventListener('input', validate);

于 2020-05-21T10:35:10.117 回答