使用Tapestry 5.3和tapestry-jquery的Tapestry.FORM_VALIDATE_EVENT

时间:2015-03-27 12:24:04

标签: jquery tapestry

我正在尝试在简单的更改密码表单上进行跨领域验证。例如,新密码和确认密码相同,新密码与旧密码不同等。

看来我应该为Tapestry.FORM_VALIDATE_EVENT提供一个处理程序,但我无法找出发出错误信号并提供信息的正确方法。

tapestry-jquery.js来源中的评论表明我应该发送event.result为假,但这似乎没有做任何事情。这些注释似乎也是Tapestry库的原型版本的复制/粘贴,因此我不确定它们是否真正适用。

我尝试像其他自定义验证程序一样抛出异常,并且似乎没有做任何事情。

这是我到目前为止所尝试的内容:

        $("#" + specs.form).on(Tapestry.FORM_VALIDATE_EVENT, function (event) {

            var $currPassword = $("#" + specs.currentPassword).val();
            var $newPassword = $("#" + specs.newPassword).val();
            var $confirmPassword = $("#" + specs.confirmPassword).val();

            if ($currPassword == $newPassword) {
                // throw "wtf";
            }

            if ($newPassword != $confirmPassword) {
                // throw "other wtf";
            }
            event.result = false;
            return event;
        });

是否有人使用tapestry-jquery进行交叉表单验证的工作示例?

由于 贝

1 个答案:

答案 0 :(得分:0)

这是一个示例,演示如何使用" tapestry-jquery"

在Tapestry 5.3.8中的自定义JavaScript验证器中报告验证错误
var field = $('#input-should-be-validated');
field.tapestryFieldEventManager(); //initialize
$.tapestry.utils.addValidator(field, function(value) {
   if(value is NOT VALID){
       var form = field.closest('form');
       form.formEventManager("setValidationError", true);
       field.tapestryFieldEventManager("showValidationMessage", "NOT VALID");
   }
});