根据是否选中复选框,使用jQuery追加URL

时间:2015-06-29 11:31:06

标签: javascript java jquery html page-refresh

我正在尝试使用jQuery附加一个URL。

我的页面上有一个'警告'网格,从servlet填充。屏幕顶部有一个复选框,选中后将显示已清除的警告以及活动警告。基本上,此复选框显示并隐藏网格的行。有一个清除警告的按钮,以及一个不清楚警告的按钮。选中复选框时,会显示不清楚的按钮。

首次单击复选框时,会正确添加URL。但是,取消选中复选框时,不明确的按钮会粘住并且URL未正确附加。

这是我的jQuery:

 $(document).ready(function() 
   {
      var showClearedWarningsFlag = getURLParameter("showHideClearedWarnings");

  if(showClearedWarningsFlag = "SHOW")
  {
     $('#showClearedWarningsCheckBox').prop('checked', true);
     $('#unclearButton').show();
  }
  else
  {
     $('#showClearedWarningsCheckBox').prop('checked', false);
     $('#unclearButton').hide();
  }

});


 $('#showClearedWarningsCheckBox').change(function ()
 {
    if($(this).is(':checked'))
    { 
       window.location.search = "?showHideClearedWarnings=" + "SHOW";    
    }
    else
    {
       window.location.search = "?showHideClearedWarnings=" + "HIDE";
    }

 });

$('#clearButton').click(function(){
         $('#bagWarningAction').val('CLEAR') ;
    });

   $('#unclearButton').click(function(){
       $('#bagWarningAction').val('UNCLEAR') ;
   });

那么,我想在这里做些什么:

if URL is show
   then show unclear button and check box
else if URL is hide
   don't show unclear button and don't check box
on change of checkbox
   if checked
      append URL to show
   else if not checked
      append URL to hide

然后,我有两个清晰和不清晰的按钮,通过SHOW或HIDE到我页面上的隐藏输入。

但是,当我按下显示清除警告的复选框时,会发生这种情况,这是成功附加URL,但在页面刷新时未选中该复选框。因此,再次选中该复选框后,它只是重定向到SHOW URL。如果我手动将URL更改为HIDE,则会隐藏已清除的警告。

我想我错过了一些非常微妙的东西。如果有人能说清楚为什么复选框没有幸存下来,我将非常感激!

2 个答案:

答案 0 :(得分:0)

编辑:这次我更仔细地重读了你的问题。 您可以检查控制台,可能有错误(错误的ID,什么不是)。否则,我认为您的代码没有问题。下面的文字仍然适用,你可能想要使用一个cookie,它比URL参数更耐用(更不用说最终用户了)。

根据定义,复选框值无法在刷新后继续存在。这是一个输入,并且它们的值不会存储,除非您手动执行此操作(例如,通过cookie)。

所以你可以尝试通过jQuery创建一个cookie来保存复选框的最后一个已知值。

我建议阅读这篇SO回复,了解如何做到这一点 How do I set/unset cookie with jQuery?

答案 1 :(得分:0)

我已经解决了这个问题。真的,真的很傻。在我的if检查中,我总是更改要显示的URL,因为我使用一个等号而不是两个。

糟糕!