【问题标题】:Building a form dynamically动态构建表单
【发布时间】:2012-06-23 10:12:09
【问题描述】:

我有一个下拉菜单,用户可以根据构建表单的条件从中选择一个条件。

我现在要做的是确保他们不能构建相同的两次,例如,如果用户从下拉列表中选择外观,我不希望他们能够从下拉列表中选择外观,而该表单已构建。

这有意义吗?目前这是我的代码,

$('img.toggleadd').live({
    click: function() {
        var rowCount = $("#advanced_search > table > tbody > tr").length;

        f(rowCount < 3) {
            $.ajax({
                url: site_url + 'ajax/row/empty',
                success: function(data) {
                    console.log($(this));
                    $('#advanced_search table').append(data);
                }
            });
        }
    }
});

和 PHP

public function row($name) {
    if ($this->input->is_ajax_request()) {
        return $this->load->view('search/rows/'.$name);
    }
}

$name 与包含所选值的相应表单元素的视图的名称相关。

【问题讨论】:

  • 好吧,您可以使请求同步(在等待时阻止网页),或者您可以disable select 选择在success 运行时单击并重新启用它,或者您可以进行阻塞逻辑检查以查看该元素上是否有当前正在工作的请求。

标签: php javascript jquery ajax


【解决方案1】:

正如Jared 所提到的,解决方案可以是一个简单的布尔值,指示请求是否在进行中......

以这段代码为例——

var request_in_progress = false;

$("#selector").on('change',function(){
  if (!request_in_progress){
    request_in_progress = true;
    $.ajax('/path_to_ajax_module.php',{'data':data},function(response){
      // handle the AJAX response
      request_in_progress = false;    // AJAX request complete.      
    },'json');
  }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-24
    • 2017-11-12
    • 2011-01-15
    • 2012-10-19
    • 1970-01-01
    • 1970-01-01
    • 2017-04-11
    相关资源
    最近更新 更多