我正在使用一些 Javascript,它由多个复选框调用,并且理想情况下会在选中/取消选中复选框时执行操作(累积地向 URL 添加和删除 &attributeValue=attribID)。
这是 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);
}
}
因此,我在这里所做的就是尝试在选中复选框时,将该复选框的 attributeValue 添加到 URL,并在取消选中复选框时,删除该复选框的属性值来自 URL 的属性值。我使用 filterFullURL = filterFullURL+"..."因为有多个复选框,并且我希望将它们的所有 attributeValues 累积添加到 URL 中。
所有这些都工作正常 - 唯一工作不正常的是 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 添加在一起,但我无法删除其中任何一个。这里有什么帮助吗?谢谢!
最佳答案
您不需要像filterFullURL = filterFullURL.replace("&attributeValue="+attribID, "")那样保存filterFullURL.replace的输出吗?
关于Javascript 替换方法在复选框 if/else 切换中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7192416/