【问题标题】:Tapestry.FORM_VALIDATE_EVENT with Tapestry 5.3 and tapestry-jqueryTapestry.FORM_VALIDATE_EVENT 与 Tapestry 5.3 和 Tapestry-jquery
【发布时间】:2015-03-27 12:24:03
【问题描述】:

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

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

tapestry-jquery.js 源中的 cmets 表明我应该将 event.result 发送为 false,但这似乎没有任何作用。这些 cmets 似乎也是 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 进行跨表单验证的工作示例吗?

谢谢 托尼

【问题讨论】:

    标签: jquery tapestry


    【解决方案1】:

    这是一个示例,它显示了如何在 Tapestry 5.3.8 中使用“tapestry-jquery”报告自定义 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");
       }
    });
    

    【讨论】:

      猜你喜欢
      • 2011-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 2019-07-08
      相关资源
      最近更新 更多