我有一个这样的网址:
http://www.example.com/index.php?mod=7&sec=franquicias&month=10&year=2013
里面有一个日期选择器;这应该改变获取参数的月份和年份;然后重新加载页面。
在 HTML 中,我在负责减少日期的按钮中执行以下操作:
<button type="button" class="btnIcon previous lbutton" onclick="changeMonth('previous',{$smarty.get.month},{$smarty.get.year})">
必须管理的 javascript 函数是:
function changeMonth(changeType, month, year){
changeMonth;
switch (changeType){
case "previous":
changeMonth = month-1;
if (changeMonth <= 0) changeMonth = 12;
if (changeMonth < 10) changeMonth = "0"+changeMonth;
window.location = updateURLParameter($(location).attr('href'), month, changeMonth);
break;
case "next":
break;
}
}
function updateURLParameter(url, param, paramVal){
var regEx = /month=[0-9]{3}/;
console.log("paramVal: "+paramVal);
// paramVal here is ever correct.
var newUrl = url.replace(regEx, 'month='+paramVal);
console.log(newUrl);
return newUrl;
}
看来它应该可以工作,现在奇怪的是,只有当 url 中的 GET 参数为 &month=03 时才有效,当还有其他月份时,url.replace 不能正确替换 url。重要的是要注意函数“updateUrlParameter”中的“paramVal”总是正确的;所以问题出在'function updateUrlParameter'的urlReplace中。
我很感激任何帮助。