我在使用我网站的网址传递变量时遇到了问题。
以下是代码:
function sort(form) {
var Page = "?";
var iweek = form.listWeeks.SelectedIndex;
var week = form.listWeeks.options[iweek].value;
var month = form.listMonth.selectedIndex+1;
var iyear = form.listYear.selectedIndex;
var year = form.listYear.options[iyear].value;
var URL = Page + "week=" + week + "&month=" + month + "&year=" + year;
window.location = URL;
return false;
}
当我点击提交按钮时,该网址会改为:
http://localhost/test.php?listWeeks=1&listMonth=August&listYear=2010&Submit=Select
但我想将网址改为:
http://localhost/test.php?week=1&month=8&year=2010
奇怪的是,当我将代码更改为:
时 function sort(form) {
var Page = "?";
//var iweek = form.listWeeks.SelectedIndex;
//var week = form.listWeeks.options[iweek].value;
var month = form.listMonth.selectedIndex+1;
var iyear = form.listYear.selectedIndex;
var year = form.listYear.options[iyear].value;
var URL = Page + "month=" + month + "&year=" + year;
window.location = URL;
return false;
}
它有效..有谁能告诉我可能是什么问题?
谢谢!
答案 0 :(得分:1)
您可能需要在每个value
代码中使用<option>
属性。例如
<select name="listMonth">
<option value="1">January</option>
<option value="2">February</option>
...
</select>
您也可以将<select name="listMonth">
更改为<select name="month">
。
这应该按预期工作(更新):
<form method="get" action="test.php">
<select name="month">
<option value="1">January</option>
<option value="2">February</option>
...
</select>
<input type="submit" />
</form>
然后不需要JavaScript代码。
答案 1 :(得分:0)
您注释掉的两行代码中的某些内容会引发错误。如果没有看到更多的上下文(例如表单),为什么不能说这个。
这导致JavaScript崩溃并且表单正常提交。
我会通过完全删除JS并从表单控件中删除name
属性来处理这个问题,而这些属性不希望出现在提交的数据中。