如何停止刷新页面?

Posted

技术标签:

【中文标题】如何停止刷新页面?【英文标题】:how to stop refreshing of the page? 【发布时间】:2015-09-25 11:16:30 【问题描述】:

实际上我已经编写了一段用于检测地理位置的代码,并且基于该地理位置,货币会发生变化并且它也在工作,但是这里的问题是,这段代码一次又一次地刷新整个页面,如果我删除了其他部分如果我保持这种状态,页面就会刷新,否则条件不起作用,有人可以建议我如何阻止我写的这个

<script type="text/javascript">
    //alert("Welcome to our visitors from  "+geoplugin_currencyCode());  
    alert("Welcome to our visitors from  "+geoplugin_countryName());

     $flag=false;
     if($flag===false) 
        var country = geoplugin_countryName();

        if(country === 'India') 
            $('#currency input[name=\'code\']').attr('value', 'INR');
            $('#currency').submit();
            alert('Your currency is set to INR');
         else 
            $('#currency input[name=\'code\']').attr('value', 'USD');
            $("#currency").change();
            alert('Your currency is set to USD');
        
    else 
        return false;
   
</script>

【问题讨论】:

我尝试使用您的代码 - 我的 peage 不会自动重新加载。哪个代码刷新了您的页面? 如果没有删除它,你是否删除了其他部分并尝试在我的页面中重新加载它,我在 opencart 中使用它 你有不止一个...我假设你的意思是包含 return false; 的 else 对吗? 是的,当我删除它时返回 false,它会不断重新加载 这个元素$("#currency")是什么?是表格吗? 【参考方案1】:

试试

$(function()
    alert("Welcome to our visitors from  "+geoplugin_countryName());
     $flag=false;
     if($flag===false)
        var country = geoplugin_countryName();
         if(country === "India")
            $("#currency input[name=\'code\']").attr("value", "INR");
            $("#currency").submit();
            alert("Your currency is set to INR");
            return false;
          else
            $("#currency input[name=\'code\']").attr("value", "USD");
            $("#currency").change();
            alert("Your currency is set to USD");
            return false;
         
    else
      return false;
   
  );

【讨论】:

你能说一下 - 你的代码中的“国家”变量是什么值? 其实这是我用来获取国家名称的插件 如果你注释掉这个 $("#currency").submit(); 实际上会发生什么它不会改变我的意思是货币的符号 当然,尝试取消注释此行。 如果取消注释它的重装是否有其他方法可以做到这一点【参考方案2】:

您的代码很好,但您必须以不同的方式处理它。首次加载页面时,假设您将国家/地区设置为India。所以现在转到if(country === "India") 代码执行$("#currency").submit(); 行并提交表单。因此,一旦提交表单,您必须设置 INR 值可能在隐藏字段中。然后您可以添加一行代码来验证隐藏字段是否具有INR 值。如果它的值为INR,则不要执行代码。

假设您有 ID 为 currency_code 的隐藏字段。因此,现在在表单提交您从$("#currency input[name=\'code\']") 发布的任何值之后,只需在#currency_code 输入隐藏字段中设置该值即可。

现在在您的代码中检查该条件。

<script type="text/javascript">
    //alert("Welcome to our visitors from  "+geoplugin_currencyCode());  
    alert("Welcome to our visitors from  "+geoplugin_countryName());

     $flag=false;
     if($flag===false) 
        var country = geoplugin_countryName();

        if(country === 'India') 
            if($('#currency_code') !== 'INR') 
                $('#currency input[name=\'code\']').attr('value', 'INR');
                $('#currency').submit();
               alert('Your currency is set to INR');
             else 
               alert('Your currency is already set to INR');
            
         else 
            $('#currency input[name=\'code\']').attr('value', 'USD');
            $("#currency").change();
            alert('Your currency is set to USD');
        
    else 
        return false;
   
</script>

我不确定您的所有 html 代码。但这是您处理问题的方式。希望这会对你有所帮助。

【讨论】:

以上是关于如何停止刷新页面?的主要内容,如果未能解决你的问题,请参考以下文章

如何停止 jQuery 帖子页面刷新

调整浏览器窗口大小时如何停止页面刷新(跳转)?

键盘输入时,如何在Ajax调用URL更改后停止MVC页面刷新

如何在php中停止刷新页面[重复]

提交时停止表单刷新页面

如何使用 asp.net 按钮单击在引导模式中停止刷新页面