javascript - 在 Ajax 加载按钮上单击设置 Javascript 变量

标签 javascript php jquery html ajax

我在显示调用列表的页面上通过两个日期加载 ajax 查询。

在返回的数据中有 CallID、姓名、日期、完成按钮。

我似乎无法让我的 javascript 在 AJAX 调用后点击按钮时触发。

首先是我的 HTML:

    <input type="text" class="form-control date-picker" id="startdate" value="<?php echo date("m/d/Y");?>">

    <input type="text" class="form-control date-picker" id="enddate" value="<?php echo date("m/d/Y");?>">

<input type"text" id="rep" value="WOLRAB">

    <div id="calls"></div>

我的第二个 AJAX 调用数据:

$('input#daterange').on('click', function() {

        var start = $('input#startdate').val();
        var end = $('input#enddate').val();
        var rep = $('input#rep').val();

        $.post('assets/ajax/repscalls.php', {startdate: start,enddate: end, rep:rep}, function(data) {
            $('#calls').html(data)
        });

});

第三,我的 php 文件执行结果(请注意,我只复制了在 ajax 触发后显示在 html 页面上的按钮。

echo "<td><input type='hidden' id='callid' value='" . $row['callid'] . " '><input type='submit' id='completecall' value='Complete'></td>";

现在,一旦它被输出到 HTML 页面,我就想点击 COMPLETE 按钮,它会更新状态为完成的调用。

我以类似的方式执行此操作,但出于某种原因,我无法让我的 javascript 在单击按钮时触发。

$('input#completecall').on('click', function() {
        var completeid = $('input#callid').val();
        alert(completeid);  
});

最佳答案

关于 AJAX 的事情是 JavaScript 不会等到 AJAX 调用完成后才执行它之前的代码。例如:

#some ajax call takes 10 seconds here`
var x = 2 + 2;
#ajax call complete

x 将被立即评估,而不是等待 AJAX 调用。

您需要使用 AJAX 调用的 complete 函数来确保按您的意愿点击按钮。例如:

$.ajax({
  method: "GET",
  url: "test.php",
  data: "whatever",
  success: function(data){
     // do whatever 
  },
  complete: function(){ 
    // do your click
  }
});

complete 总是被调用,无论是否发生错误/成功


此处有关 jQuery AJAX 调用的信息:http://api.jquery.com/jquery.ajax/

关于javascript - 在 Ajax 加载按钮上单击设置 Javascript 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32069510/

相关文章:

php - 如何编写此 mySQL 查询以在每一列中显示多个数据?

javascript - jQuery Accordion |在页面加载时打开第一个元素和事件状态混淆

javascript - 在 JavaScript 中压缩明文?

javascript - 使用 tooltipster 和 jQuery 表单验证插件放置错误?

php - WP_Query 按 menu_order 而不是标题排序

PHP 函数式风格

javascript - 如何解析弹出框到文本框的值?

javascript - 获取某些 div 的子级 div 的数量

jquery - 如果 x=true,则将项目移动到 <cfloop> 中的第一个数组位置

javascript - 为基于Vue店面的网上商店设置RSS Feed(Google购物)