【问题标题】: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")是什么?是表格吗?

标签: javascript jquery geolocation


【解决方案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 代码。但这是您处理问题的方式。希望这会对你有所帮助。

【讨论】:

    猜你喜欢
    • 2015-11-14
    • 2019-05-26
    • 1970-01-01
    • 1970-01-01
    • 2013-02-14
    • 2013-02-11
    • 1970-01-01
    • 2015-03-01
    • 2012-07-12
    相关资源
    最近更新 更多