0

我的 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 年。如何在搜索后维持我的选择功能?

4

2 回答 2

1

您遇到的问题不是 javascript 问题。当您提交表单时,您会刷新整个页面,删除对其进行的任何客户端(用户或 javascript)调整。

它应该由生成您发布表单的页面的 php/java 设置,以根据您刚刚发布的值设置 selected="selected" 或相关。

在 php 中,这将是

if($_POST['year'] == '2013') echo ' selected="selected"';

在 java 或 jsp 中有类似的方法可以做到这一点。Javascript 本身可能也可以做同样的事情。

于 2013-05-30T12:28:39.460 回答
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>
于 2013-05-30T12:29:48.433 回答