问题是JSP页面会自动提交并将我转移到action servlet。如何让它等到用户在下拉选项菜单中进行选择?
<form name="mainForm" action="psm.srv" method="POST" onSubmit="return setParam(event)">
<select id="main" onchange="document.mainForm.submit()">
<option value="null">Choose chart</option>
<option value="pays">PAYS</option>
<option value="expenses">EXPENSES</option>
</select></form>
<script type="text/javascript">
function setParam(event){
event.preventDefault();
var select = document.getElementById("main");
var value = select.options[select.selectedIndex].value;
document.mainForm.action = "psm.srv?optionSelected=" + value ;
document.mainForm.submit();
}
</script>
答案 0 :(得分:0)
问题在于这一行:
onchange="document.mainForm.submit()"
这意味着只要选择输入发生变化,表单就会提交。您不必手动设置此值。在select字段中添加'name'属性,只需像往常一样在servlet中获取参数。该值自动设置。你需要一个提交按钮。
<form name="mainForm" action="psm.srv" method="POST">
<select name="selectField">
<option value="null">Choose chart</option>
<option value="pays">PAYS</option>
<option value="expenses">EXPENSES</option>
</select>
<input type="submit" value="Submit"/>
</form>
在您的servlet中,您只需:
String fieldValue = request.getParameter("selectField");
答案 1 :(得分:0)
删除提交和onchange方法,你可以简单地通过Jquery:
$(document).on('change', '#main', function () {
var selectedValue=$(this).val();
var url = "psm.srv?optionSelected=" + selectedValue;
window.location = url;
});
这将获取您当前的值并转到操作网址。