Javascript заменить метод не работает в флажок, если / иначе переключаться - PullRequest
0 голосов
/ 25 августа 2011

У меня есть немного Javascript, с которым я играю, который вызывается рядом флажков и в идеале будет выполнять действие (добавляя и удаляя & attributeValue = attribID к URL-адресу в совокупности) после того, как флажок будет установлен / снят.

Вот Javascript:

var filterBaseURL = <?="\"".$url."\""?>; /*This is just copying a php variable that contains the base URL defined earlier - all of this works fine*/
var filterFullURL = filterBaseURL;
function filterToggle(attribID)
{
  var elementII = document.getElementById(attribID);
  if(elementII.checked){
     filterFullURL = filterFullURL+"&attributeValue="+attribID;
  }
  else {
     filterFullURL.replace("&attributeValue="+attribID, "");
     alert(filterFullURL);
  }
}

Итак, я пытаюсь на проверить флажка добавить атрибут этого значения атрибута в URL и на снимите флажок флажка, удалите значение атрибута этого флажка из URL.Я использую filterFullURL = filterFullURL + "...", потому что есть несколько флажков, и я хочу, чтобы все их attributeValues ​​кумулятивно добавлялись к URL.

Все это работает нормально - единственное, что не 't нормально работает - это действие оператора else -

filterFullURL.replace("&attributeValue="+attribID, "");

Вот несколько примеров флажков:

<input type="checkbox" onclick="filterToggle('price_range_0_20')" name="Price_Range" value="Below_$20" id="price_range_0_20" /> Below $20
<input type="checkbox" onclick="filterToggle('price_range_20_40')" name="Price_Range" value="$20_-_$40" id="price_range_20_40" /> $20 - $40
<input type="checkbox" onclick="filterToggle('price_range_40_70')" name="Price_Range" value="$40_-_$70" id="price_range_40_70" /> $40 - $70

Итак, подведем итог - я могу добавить attributeValues ​​всех флажков вместе, но яне могу удалить ни одного из них.Любая помощь здесь?Спасибо!

Ответы [ 2 ]

1 голос
/ 25 августа 2011

В операторе if также отсутствовало предупреждение - не уверен, что это преднамеренно, но для вас это должно сработать:

var filterBaseURL = <?="\"".$url."\""?>; /*This is just copying a php variable that contains the base URL defined earlier - all of this works fine*/
var filterFullURL = filterBaseURL;
function filterToggle(attribID)
{
  var elementII = document.getElementById(attribID);
  if(elementII.checked){
     filterFullURL = filterFullURL+"&attributeValue="+attribID;
     alert(filterFullURL);
  }
  else {
     filterFullURL = filterFullURL.replace("&attributeValue="+attribID, "");
     alert(filterFullURL);
  }
}
1 голос
/ 25 августа 2011

Вам не нужно сохранять выходные данные filterFullURL.replace как filterFullURL = filterFullURL.replace ("& attributeValue =" + attribID, "")?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...