好吧,我的理解是,这个ASP代码将生成一个选择选项块像下面或类似。你想要做的是在选择一个选项后,你想要去另一个ASP页面来处理表单,通过一个变量q = yrSearch和另一个变量,即你选择的年份来处理表单。这样对吗?
<select name="" id="">
<option value="">2014</option>
<option value="">2013</option>
<option value="">2012</option>
<option value="">2011</option>
<option value="">2010</option>
<option value="">2009</option>
</select>
我从来没有使用过ASP,但我认为在通过URL传递变量时,它可能或多或少像PHP一样起作用。 在HTML形式的代码块你产生总是把一个结构类似:
<form action="bill_report.asp" method="get" id="myForm">
<input type="hidden" name="q" value="yrSelect">
<select name="name_of_select" value="" onChange="change_function(this.selectedIndex)">
<option value="2014">2014</option>
<option value="2013">2013</option>
<option value="2012">2012</option>
<option value="2011">2011</option>
<option value="2010">2010</option>
<option value="2009">2009</option>
</select>
如果你去看一下W3CSchools的网页(http://www.w3schools.com/jsref/dom_obj_select.asp),你可以看到,你可以修改的属性值对于一个SELECT块也是如此。
您唯一要做的就是当您选择一个选项时,让javascript获取所选OPTION的值并将其设置在整个SELECT块中。所以当你提交时,select的变量也会被传递给URL。 当选择完成后,您必须调用FORM的方法submit(),以便使用值提交表单。
如果你想传递你已经知道的变量。就像您之前指出的那样:q = yrSelect,我会使用INPUT HIDDEN表单项,所以您可以安全且快速地传递变量。
<script type="text/javascript">
var form = document.getElementById('myForm');
var select = document.body.querySelector('select');
var options = document.body.querySelectorAll('option');
function change_function (index) {
select.value = options[index].value;
form.submit();
}
</script>
感谢..但它可能无法正常工作。 – Alxan 2014-12-13 14:26:32