Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Ajax加载Btn上,单击设置Javascript变量_Javascript_Php_Jquery_Html_Ajax - Fatal编程技术网

在Ajax加载Btn上,单击设置Javascript变量

在Ajax加载Btn上,单击设置Javascript变量,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,我通过页面上显示调用列表的两个日期加载ajax查询 在返回的数据中,有CallID、Name、Date和按钮需要完成 在AJAX调用之后,我似乎无法通过单击按钮启动javascript 首先,我的HTML: <input type="text" class="form-control date-picker" id="startdate" value="<?php echo date("m/d/Y");?>"> <input type="text"

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

在返回的数据中,有CallID、Name、Date和按钮需要完成

在AJAX调用之后,我似乎无法通过单击按钮启动javascript

首先,我的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>
第三,我的php文件执行结果(注意,我只复制了ajax fire之后html页面上显示的按钮)

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

您必须使用事件委托来侦听在注册操作之后添加目标的事件

$('input#completecall')
在您调用它时可能没有任何内容,因为它没有从服务器返回,也没有添加到页面中,所以您的
$('input#completecall')。在('click')上,
注册为nothing

您应该做的是找到新添加元素的容器,并使用的委托形式注册事件

因此,您可以编写如下代码:

$('#calls').on('click', 'input#completecall', function() {
        var completeid = $('input#callid').val();
        alert(completeid);  
})
下面是一个演示:

$('#添加')。单击(函数(){
如果($('#新建')。长度===0){
var div=$('').text('New one').attr('id','New').appendTo('#calls');
}
});
$('#新建')。在('单击',函数()上){
警报(“我不会被触发!”);
});
$(文档)。在('单击','新建',函数()上){
警报(“我将被触发!”);
});
div{
宽度:70px;
文本对齐:居中;
背景颜色:浅灰色;
保证金:5px;
}

添加

关于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调用的信息,请点击此处:

#some ajax call takes 10 seconds here`
var x = 2 + 2;
#ajax call complete
$.ajax({
  method: "GET",
  url: "test.php",
  data: "whatever",
  success: function(data){
     // do whatever 
  },
  complete: function(){ 
    // do your click
  }
});