我有一个像这样的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('#seconds').val());
jQuery("#time_spent").val(jQuery("#results").html());
}, 1000);
});
和这样的提交按钮
<input type="submit" name="submit" value="Stop" id="submit" />
现在,如果单击提交按钮,则应该停止ajax jquery加载,因为时间间隔是1秒。
怎么做请帮忙 谢谢 Haan的
答案 0 :(得分:3)
听起来你正在对计时器进行Ajax刷新,但是当提交表单时,你想要取消刷新。如果是这种情况,则在提交表单时,您需要使用clearInterval()
取消计时器。
$('form').submit(function(){
clearInterval(refreshId);
});
或者您可以在提交按钮中完成此操作,具体取决于refreshId
的范围。
<input onclick="clearInterval(refreshId);return(true);" type="submit" name="submit" value="Stop" id="submit" />
答案 1 :(得分:1)
如果要在提交表单后阻止更新#result,则应使用get请求中的回调,并检查是否应在将ajax结果放入其中之前更新#result。
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);
});
});
答案 2 :(得分:1)
在做一些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>
HTML:
<input type="submit" onclick="stopWorking();return(false);" />
单击提交按钮后,变量'running'设置为false,并且所有jquery操作都将停止。
答案 3 :(得分:0)
我将要求你在黑暗中狂奔。那么如果ajax请求需要超过1秒,它应该被杀死吗?
尝试使用jQuery的$.ajax()
function设置超时。
答案 4 :(得分:0)
您需要使用不同的ajax方法 - 例如$ .get或$ .post等...因为这些方法返回一个XMLHttpRequest对象,该对象可以存储在变量中,稍后用于中止请求。