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

Javascript 根据是否选中复选框使用jQuery追加URL,javascript,java,jquery,html,page-refresh,Javascript,Java,Jquery,Html,Page Refresh,我正在尝试使用jQuery附加URL 我的页面上有一个由servlet填充的“警告”网格。屏幕顶部有一个复选框,选中该复选框后,将显示已清除的警告以及激活的警告。基本上,此复选框显示和隐藏网格的行。有一个按钮用于清除警告,还有一个按钮用于清除警告。选中复选框时,将显示“不清楚”按钮 第一次单击复选框时,URL将正确追加。但是,当取消选中该复选框时,不清楚的按钮将保持不变,并且URL没有正确附加 以下是我的jQuery: $(document).ready(function() {

我正在尝试使用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
然后,我有两个按钮,用于清除和不清除通过显示或隐藏到我的页面上的隐藏输入

但是,当我按下“显示清除的警告”复选框时,会成功地追加URL,但在页面刷新时未选中该复选框。因此,再次选中复选框后,它只是重定向到showURL。如果手动将URL更改为隐藏,则会隐藏清除的警告


我想我错过了一些非常微妙的东西。如果有人能解释为什么复选框在刷新后无法保存,我将非常感激

Edit:这次我更仔细地重读了你的问题。 您可以检查控制台,可能有错误(错误的ID,等等)。否则我看你的代码没有问题。下面的文字仍然适用,您可能想使用cookie,它比URL参数更持久(更不用说对最终用户来说更漂亮)

根据定义,复选框值在刷新后无法保留。这是一个输入,它们的值不会被存储,除非您手动这样做(例如,通过cookie)

因此,您可以尝试通过jQuery创建一个cookie,保存复选框的最后一个已知值

我建议您阅读此回复,了解如何做到这一点
我已经解决了这个问题。真的,真是愚蠢的错误。在我的if检查中,我总是更改URL以显示,因为我使用的是一个等号而不是两个


哎呀

你好,阿德里安,谢谢你抽出时间回答。使用此代码的web应用程序没有向最终用户显示URL。我知道这种方法可能不是最好的方法,但我需要在冲刺结束之前加入一些东西!我现在只想让它工作,然后下次可能会考虑一个更优雅的解决方案。我会尝试使用cookies,但我宁愿使用jQuery,如果只是为了找出我的代码不起作用的原因!我建议您检查这个回复,这样它就有了一个很好的、易于使用的功能来更改URL参数(您尝试对window.location.search所做的操作,我不是绝对肯定的,可以用来更新现有的值,这就是为什么我要求您检查您的浏览器控制台,看看它是否显示任何错误)。啊,我的道歉-不,没有显示任何错误!我们将查看该链接。非常感谢。