在Ajax加载Btn上,单击设置Javascript变量
我通过页面上显示调用列表的两个日期加载ajax查询 在返回的数据中,有CallID、Name、Date和按钮需要完成 在AJAX调用之后,我似乎无法通过单击按钮启动javascript 首先,我的HTML:在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"
<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
}
});