【问题标题】:JQuery validate with potential user interactionJQuery 验证与潜在的用户交互
【发布时间】:2012-02-24 18:46:47
【问题描述】:

我有一个包含要验证的地址的表单,它需要调用 Web 服务,如果它无效,则为用户提供一个模态 JQuery UI 对话框以覆盖。我怎样才能使这项工作,因为弹出是异步的,验证调用在用户能够选择是否避免验证规则之前完成?

编辑:我认为我已经做出了设计决定,这在关注点分离方面可能更好。我想得越多,提出一个对话框以允许在验证阶段基本上编辑数据并没有多大意义。因此验证将是同步的,而覆盖将在数据输入过程的上下文中完成。 (仅供参考,不仅仅是覆盖,还有可能从可能的匹配地址中选择一个选择列表,因此选择一个基本上会改变您首先验证的基础数据)。

【问题讨论】:

    标签: jquery jquery-ui jquery-validate


    【解决方案1】:

    您可以像这样将回调函数传递给 $.getJSON 或 $.ajax:

    $.getJSON('ajax/test.json', {address: $('#myInput').val()}, function(data) {
      var items = [];
    
      $.each(data, function(key, val) {
        items.push('<li id="' + key + '">' + val + '</li>');
      });
    
      $('<ul/>', {
        'class': 'my-new-list',
        html: items.join('')
      }).appendTo('body');
    });
    

    这是来自documentation

    这里更适合您的需求

    $.getJSON('validateAddress.json', {address: $('#myInput').val()}, function(data)
    {
       if( data.result == 'ok') 
       {
          $('#override').dialog();
       } else {
          alert('invalid address');
       }
    });
    

    【讨论】:

    • $.getJSON 是异步的,他需要同步
    • 如果他将逻辑移动到回调中,这应该仍然有效,也许我没有正确理解这个问题
    • 这是一个 jquery 对话框,不是警报,因此不会阻塞。
    猜你喜欢
    • 2013-06-16
    • 1970-01-01
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-29
    • 1970-01-01
    相关资源
    最近更新 更多