【问题标题】:jQuery Validate On Remote response based基于远程响应的 jQuery Validate
【发布时间】:2015-10-12 07:58:02
【问题描述】:
remote: {
  url: "/pages/",
  complete: function (status) {
      return !status;
  }
}

我已经应用了 jquery 验证和远程参数,调用根据发送的数据返回 true 和 false,但我需要验证就像如果返回 true,那么它应该被认为是 false,反之亦然。我尝试在完整的回调中返回相反的响应,但我猜验证不是这样工作的。

【问题讨论】:

    标签: jquery validation jquery-validate


    【解决方案1】:

    不确定,但可能是从远程返回的状态在这里不会被视为bool。所以就试试这个吧。

    remote: {
      url: "/pages/",
      complete: function (status) {
           if(status=="true")
              return false;
           return true; //no need of else
      }
    }
    

    【讨论】:

    • 嗯,我试过了,但它没有帮助,我什至试着把 return false;直接在回调中,但验证不考虑响应
    • 只需console.log(status),看看你得到了什么!如果是jqXHR 类型,则需要将其获取为status.responseText
    • 我得到真/假取决于输入的数据
    【解决方案2】:

    文档说:

    响应被评估为 JSON 并且对于有效元素必须为 true,对于无效元素可以是任何 false、undefined 或 null,使用默认消息;或字符串,例如。 “该名称已被占用,请尝试 peter123”以显示为错误消息。

    因此,请确保您使用有效的 JSON true 或 false 进行响应。

    然后简单地做一个类似的声明

    if(status)  
    

    if(status == true)

    但我建议不要在这方面进行任何更改。如您所建议的,如果远程页面为假,我将通过远程页面返回真。如果它实际上是假的,你不应该返回真。所以只需改变你回调的类型。

    【讨论】:

      【解决方案3】:
          remote: {
            url: "/pages/",
            success: function( response ) {
              var element = $(this).find(`your element`)[0];
              var previous = validator.previousValue( element );
              var valid = response === "ok" || response === "true", //add your valid condition here
                          errors, message, submitted;
      
              validator.settings.messages[ element.name ].remote = previous.originalMessage;
              if ( valid ) {
                  submitted = validator.formSubmitted;
                  validator.prepareElement( element );
                  validator.formSubmitted = submitted;
                  validator.successList.push( element );
                  delete validator.invalid[ element.name ];
                  validator.showErrors();
              } else {
                  errors = {};
                  message = response || validator.defaultMessage( element, "remote" );
                  errors[ element.name ] = previous.message = $.isFunction( message ) ? message( value ) : message;
                  validator.invalid[ element.name ] = true;
                  validator.showErrors( errors );
              }
              previous.valid = valid;
              validator.stopRequest( element, valid );
            }
         }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-10-23
        • 2014-08-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-19
        相关资源
        最近更新 更多