0

我使用两阶段浏览器验证,bootstrap-acknowledgeinput 确保该字段不为空,并且 jqBootstrapValidate 处理真正的验证和 REGEX 模式,并在棕色文本的表单字段下方添加一个给出错误的表单字段。当用户单击 [REGISTER ] 按钮 我检测到它并将 JSon 数据发送到一些 PHP 进行服务器端验证。如果失败,它将以不同的方式填充文本

  • 显示服务器端输入数据错误的标签。

    我正在检测错误标签,但我不知道如何退出点击事件,只是坐在不完整的表单上等待用户更正客户端验证。

    var RegisterView = Backbone.View.extend({
    
             el: $("#container"),
    
              events: {
                       'click .btn-primary'   : 'saveClient',    
                       'blur input#loginname'      : 'userCheck'
              },
    
         saveClient: function (e) {
    
              $('ul li').each(function(index){
                 if( $(this).text().length !== 0 ){
                     alert('client side error found');
                     return false;
                    }
                });
    
                var loginname  = $('#loginname').val(),
                  password  = $('#password').val(),
                  first     = $('#first').val(),
                  last      = $('#last').val(),
                  addr1     = $('#addr1').val(),
                  addr2     = $('#addr2').val(),
                  city      = $('#city').val(),
                  state     = $('#state').val(),
                  zip       = $('#zip').val(),
                  phone     = $('#phone').val(),
                  phone2    = $('#phone2').val(),
                  verified  = 'N';
    
                   registermodel = new RegisterModel({
                       loginname     :  loginname,
                  password  :  password,
                  first     :  first,
                  last      :  last,
                  addr1     :  addr1,
                  addr2     :  addr2,
                  city      :  city,
                  state     :  state,
                  zip       :  zip,
                  phone     :  phone,
                  phone2    :  phone2,
                           verified  :  verified
                     });
                   registermodel.save();
                   return false;
        }
    
  • 4

    1 回答 1

    0

    如果你想做的是:

    registermodel如果在客户端检测到错误,请不要保存。

    saveClient如果检测到错误,只需退出函数(参见hasError布尔值):

    saveClient: function (e) {
    
      var hasError = false;
    
      $('ul li').each(function(index){
        if( $(this).text().length !== 0 ){
         alert('client side error found');
         hasError = true;
         return false; // this 'return false;' exits the .each loop function NOT the saveClient function
        }
      });
    
      if (hasError)
          return false; // this one does exit the saveClient function
    
      // Code continues here..
      // ...
    }
    
    于 2013-11-05T18:13:02.687 回答