我的javascript有问题。首先,这是我的代码分区:
<select class="inputTxt" style="width: 120px;" id="yearCombo" name="yearCombo">
<option value="0">2013</option>
<option value="1">2012</option>
<option value="2">2011</option>
</select>
function searchClicked() {
var operationField = document.getElementById("<%=FeedbackReportCtrl.PARAM_OPERATION%>");
operationField.value = "<%=FeedbackReportCtrl.OPERATION_SEARCH%>";
var yearFilter = document.getElementById("<%=FeedbackReportCtrl.PARAM_YEARFILTER%>");
yearFilter.value = document.getElementById("yearCombo").options[document.getElementById("yearCombo").selectedIndex].text;
var mainForm = document.getElementById("main");
mainForm.submit();
}
以下是出了什么问题; 例如,当我从组合框中选择2011年然后点击搜索按钮时,它会给我带来所需的结果;但是,该框的选定索引将返回到2013年。如何在搜索功能之后维持我的选择?
答案 0 :(得分:1)
你遇到的问题不是javascript问题。当您提交表单时,您刷新整个页面,删除任何客户端(用户或javascript)调整。
它应该由生成您发布表单的页面的php / java设置,根据您刚刚发布的值设置selected =“selected”或相关。
在php中,这将是
if($_POST['year'] == '2013') echo ' selected="selected"';
在java或jsp中,有类似的方法。 Javascript本身可能会做同样的事情。
答案 1 :(得分:0)
提交表单会刷新页面(除非通过AJAX完成),因此返回默认选择的值,即第一个。
为了解决这个问题,你需要发送所选年份的表格 - 假设你是自我提交的 - 并明确将今年标记为选定的选项。
在PHP中您的代码将类似于:
<?php $year = $_POST['year']; ?>
<select class="inputTxt" style="width: 120px;" id="yearCombo" name="yearCombo">
<?php for ($i=2013;$i>2010;$i--): ?>
<option value="<?php echo $i; ?>" <?php if ($year==$i) echo "selected"; ?> >
<?php echo $i; ?>
</option>
<?php endfor; ?>
</select>