Php 在提交时停止ajax jquery加载
我有一个像这样的jquery前任Php 在提交时停止ajax jquery加载,php,jquery,ajax,Php,Jquery,Ajax,我有一个像这样的jquery前任 jQuery(document).ready(function() { var refreshId = setInterval(function() { jQuery("#results").load('random.php?randval='+ Math.random()+'&hours='+jQuery('#hours').val()+'&mins='+jQuery('#mins').val()+'&seconds=
jQuery(document).ready(function() {
var refreshId = setInterval(function() {
jQuery("#results").load('random.php?randval='+ Math.random()+'&hours='+jQuery('#hours').val()+'&mins='+jQuery('#mins').val()+'&seconds='+jQuery('#seconds').val());
jQuery("#time_spent").val(jQuery("#results").html());
}, 1000);
});
还有一个像这样的提交按钮
<input type="submit" name="submit" value="Stop" id="submit" />
现在,如果单击submit按钮,ajax jquery加载应该立即停止,因为时间间隔为1秒
怎么做。请帮忙
谢谢
哈恩我要在黑暗中疯狂地试探你的要求。那么,如果ajax请求花费的时间超过1秒,它应该被终止吗
尝试使用jQuery设置超时。这听起来像是在计时器上进行Ajax刷新,但在提交表单时,您希望取消刷新。如果是这种情况,那么在提交表单时,您需要使用
clearInterval()
来取消计时器
$('form').submit(function(){
clearInterval(refreshId);
});
或者,根据refreshId
的范围,您也可以在“提交”按钮中正确执行此操作
<input onclick="clearInterval(refreshId);return(true);" type="submit" name="submit" value="Stop" id="submit" />
您需要使用不同的ajax方法,如$.get或$.post等。。。因为这些方法返回一个XMLHttpRequest对象,该对象可以存储在变量中,稍后用于中止请求 请参阅:如果要防止在提交表单后更新#结果,应使用get请求的回调,并在将ajax结果放入其中之前检查是否应更新#结果
var refreshId = -1;
jQuery(document).ready(function() {
var stop = false;
refreshId = setInterval(function() {
var data = {
randval: Math.random(),
hours: jQuery('#hours').val(),
mins: jQuery('#mins').val(),
seconds: jQuery('#seconds').val()
};
jQuery.get('random.php', data, function(data){
if (!stop) {
jQuery("#results").html(data);
jQuery("#time_spent").val(data);
};
});
}, 1000);
jQuery('form').submit(function(){
stop = true;
clearInterval(refreshId);
});
})) 在做一些ajax工作之前,先检查一下某个变量是否为真 Javascript:
<script type="text/javascript">
function stopWorking()
{
running = false;
}
$(document).ready(function()
{
running = true;
var refreshId = setInterval(function() {
if(running!=false)
{
jQuery("#results").load('random.php?randval='+ Math.random()+'&hours='+jQuery'#hours').val()+'&mins='+jQuery('#mins').val()+'&seconds='+jQuery('#seconds').val());
jQuery("#time_spent").val(jQuery("#results").html());
}, 1000);
});
</script>
函数stopWorking()
{
运行=错误;
}
$(文档).ready(函数()
{
运行=真;
var refreshId=setInterval(函数(){
如果(正在运行!=错误)
{
jQuery(“#results”).load('random.php?randval='+Math.random()+'&hours='+jQuery'#hours').val()+'&mins='+jQuery('#mins').val()+'&seconds='+jQuery('#seconds').val());
jQuery(“#time_persed”).val(jQuery(#results”).html();
}, 1000);
});
HTML:
单击submit按钮后,变量“running”被设置为false,所有jquery操作都停止。Hi,您可以在每行的开头放四个空格来格式化源代码(可以使用编辑器顶部的
{}
按钮完成)--这一次我帮你做了;;有关格式化的更多信息,请参阅查看您的示例和问题,我认为您肯定对OP的要求有了更好的理解。这是一个很难理解的问题。请投票!@decipher:非常感谢。效果很好。但是收到这样的警告。“refreshId未定义”-如何解决此问题。$。load()
还将XMLHttpRequest
传递到回调函数中。非常感谢。这也非常有效。但会收到类似这样的警告。“未定义refreshId”如何解决这个问题,我忘了考虑范围。这是因为<代码>刷新代码变量不存在于<input type="submit" onclick="stopWorking();return(false);" />