Добавление параметра в URL с флажком (jQuery) - PullRequest
0 голосов
/ 22 января 2020

Я добавляю ?show={COUNTRY CODE} к URL в качестве параметра. Мне удалось добавить его с помощью приведенного ниже кода, но я не могу удалить его, если снять флажок.

$.urlParam = function(name) {
  var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href);
  if (results) {
    return results[1];
  } else {
    return 0;
  }
}

$('#uc').click(function() {

  var country = $(this).val();
  var site_url = $('body').data('site-url');
  var url = $('body').data('url');

  window.location.href = site_url + url + '?show=' + country;
});

if ($.urlParam('show') == $('#uc').val()) {
  $('#uc').attr('checked', true);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="checkbox" name="uc" id="uc" value="UK"> <label for="uc">Only UK</label>

Ответы [ 2 ]

1 голос
/ 22 января 2020

Используйте условие, чтобы проверить, установлен флажок или нет.

if ($(this).is(':checked')) {
    console.log(site_url + url + '?show=' + country)
 } else {
    console.log(site_url + url)
  } 
0 голосов
/ 22 января 2020

Используйте change(), а не click(), затем проверьте с помощью .is(':checked')

$.urlParam = function(name) {
  var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href);
  if (results) {
    return results[1];
  } else {
    return 0;
  }
}

$('#uc').change(function() {

  var country = $(this).val();
  var site_url = $('body').data('site-url');
  var url = $('body').data('url');
  var site_url = 'google.com' // temp remove later
  var url = '/sd/' // temp remove later


  if ($(this).is(':checked')) {
    console.log(site_url + url + '?show=' + country)
    //window.location.href = site_url + url + '?show=' + country; // uncomment later
  } else {
    console.log(site_url)
    //window.location.href = site_url; // uncomment later
  }

});

if ($.urlParam('show') == $('#uc').val()) {
  $('#uc').attr('checked', true);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="checkbox" name="uc" id="uc" value="UK"> <label for="uc">Only UK</label>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...