您好我是JSP的新手,并试图将标题中的选定值显示为动态文本。但每次我选择它时都显示选项值而不是文本。以下是我的尝试。
Html下拉
<select id="country" name="country_code">
<option value="1">Puerto Rico</option>
<option value="63">Philippines</option>
<option value="others">Others</option>
</select>
JSP标记
<%
String countrycd = request.getParameter("country_code");
String countryTxt = request.getParameter("country_code");
%>
这是我的剧本
<script>
document.getElementById("country").value = '<% out.print(countrycd); %>';
var e= document.getElementById("country");
var str = e.options[e.selectedIndex].text;
alert(str);
</script>
这是我的html代码,我需要显示所选文本而不是值,例如,如果用户选择菲律宾,它应该显示为菲律宾而不是代码63
<h2>By Country: <% out.print(countrycd);</h2>
任何帮助都会非常有用!
感谢。
编辑:
当前输出
从下拉列表中选择的philipines在标题中显示:按国家/地区: 63
预期产出:
如果选择了philipines,则从下拉列表中显示
按国家:菲利普斯不是63。
答案 0 :(得分:1)
您正在显示标题中的值。你可以这样做:
<h2>By Country: <span id="countryName"> </span> </h2>
然后你的script
应该是:
<script>
window.onload = function(){
document.getElementById("country").value = '<% out.print(countrycd); %>';
var e= document.getElementById("country");
var str = e.options[e.selectedIndex].text;
document.getElementById("countryName").innerHTML = str; //This line changed
};
</script>
我们不是使用JSP获取国家/地区名称,而是使用javascript(在countryName
范围内编写)
答案 1 :(得分:0)
HTML中选择组件的行为是在发布表单而不是显示文本时发送所选选项的值。您可以通过以下两种方式之一实现目标:
像这样更改选择:
<select id="country" name="country_code">
<option value="Puerto Rico">Puerto Rico</option>
<option value="Philippines">Philippines</option>
<option value="Others">Others</option>
</select>
或者,如果该值代表数据库中国家/地区的ID,则可以在发布表单时查找该ID,并获取该国家/地区的名称。