下面是我的代码(1.jsp)
<html>
<head>
<script type="text/javascript">
function changeFunc() {
var selectBox = document.getElementById("selectBox");
var selectedValue = selectBox.options[selectBox.selectedIndex].value;
document.write("\n value is"+selectedValue);
}
</script>
</head>
<body>
<form method="post" action="SampServlet">
<select id="selectBox" name="selurl" onchange="changeFunc();">
<option value="1">Option #1</option>
<option value="2">Option #2</option>
</select>
</form>
</body>
</html>
这里我已将此代码插入到jsp页面中。并将“selectedValue”的值从javascript获取到与此相同的jsp中的scriptlet。
<% String val=(String)request.getParameter("selurl");
System.out.println("\n selected value is:"+val); %>
我选择的值为null作为输出。如果我打印javascript selectedValue参数它给我正确的输出,即输出作为选择的选项。但在scriptlet中我得到null.Where是错误。我包括所有标题和指令。请帮助我。
答案 0 :(得分:2)
在您的网络浏览器中,您只有html,javascript和css。所有JSP代码都应该在服务器上运行。所以你只获得了jsp文件的输出。在此之后,您无法更改jsp代码。
答案 1 :(得分:2)
使用提交按钮在同一页面上获取您选择的值 不需要任何功能,不需要提交。
例如:
<form method="post" action="">
<select id="selectBox" name="selurl">
<option value="1">Option #1</option>
<option value="2">Option #2</option>
</select>
<input type="submit" value="Submit" name="sub">
//use scriplet tag
<% String r=request.getParameter("sub");
if(r.equals("Submit"){
String s=request.getParameter("selurl");
System.out.println("selected value is "+s);
}%>
</form>
答案 2 :(得分:0)
您的select元素应该具有name属性,您必须在request.getParameter()中使用该名称
<select id="selectBox" name="selurl"">
<option value="1">Option #1</option>
<option value="2">Option #2</option>
</select>
String val = request.getParameter("mySelect");
编辑:
如果您希望在select元素的onchange事件上发出服务器请求,则必须使用Ajax。
使用jQuery,
$.post('SampServlet', {selectedValue: selectedValue}, function(data) {
//Update view
});
答案 3 :(得分:0)
您错过了<submit>
按钮。
<form method="post" action="SampServlet">
<select id="selectBox" name="selurl" onchange="changeFunc();">
<option value="1">Option #1</option>
<option value="2">Option #2</option>
</select>
<input type="submit" /> <!-- MISSING!! -->
</form>
添加按钮并单击它以将表单提交到您的servlet,并将所选值发送为selurl
。请注意,您的表单action
属性指向SampServlet
,它似乎是一个servlet。对于jsps,我们通常在表单中使用action="page.jsp"
。
修改强>:
如果您想在用户从下拉列表中选择值时自动发布表单,只需将onchange
设置为:(您甚至不需要<submit>
按钮)
onchange="this.form.submit()"