JSP中使用alert的问题

我有两个文本框、两个radio和一个按键,当点按键时,
如果没有选择任何一个radio,就出现alert(是在原页面),点alert上的确定键就会返回原来的页面,用户在文本框中输的东西还在。
如果选择了一个radio,就在Servlet上做相应的东西。
我在JSP上是这样编的:
<body>
<%--文本框设置 --%>
<form action="/evaluation" method="post">
<center>
Please input training data in the box below<br>

<div><textarea name="traindata" rows="5" cols="100"></textarea></div>
<br><br>
Please input evaluating data in the box below
<div><textarea name="dodata" rows="5" cols="70"></textarea></div>
<br><br>
Please select the model:
<input type="radio" name="button" value="button1" > B
<input type="radio" name="button" value="button2" > S
<br><br>
<div><input type="submit" value="Evaluation" /></div>
</center>
</form>
<%
if(request.getParameter("button")==null){
%>
<script>
alert("please");
</script>
<%return; }
%>
</body>
运行后还有很多问题
1 总是已进入页面就显示alert,而不是点了按键之后才判断,而且点了按键后,还继续运行Servlet的程序,并没有完全返回
2 点击alert上的确定键后,返回的是新的页面,之前在文本框中输的东西都没有了。

我是新学Java的,所以请说详细点,最好有程序!
2楼的程序貌似有问题,check()程序用不上啊,onsubmit="return check();"好像没进去

说下思路:
在button上面 调用onclick='yourMethod',yourMethod是你自己写的function,在这里getElementById取得文本框中的值进行判断,符合条件就return true,这样程序就往下走,不符合条件就alert,然后return false,程序就不往下走了
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-21
<body>
<%--文本框设置 --%>
<!-- 这里加了提交检测 -->
<form action="/evaluation" method="post" onsubmit="return check();">
<center>
Please input training data in the box below<br>

<div><textarea name="traindata" rows="5" cols="100"></textarea></div>
<br><br>
Please input evaluating data in the box below
<div><textarea name="dodata" rows="5" cols="70"></textarea></div>
<br><br>
Please select the model:
<input type="radio" name="button" value="button1" > B
<input type="radio" name="button" value="button2" > S
<br><br>
<div><input type="submit" value="Evaluation" /></div>
</center>
</form>

<script>
function check(){
//获取按钮组
var buttons = document.getElementsByName("button");
for(var i=0;i<buttons.length;i++){
//循环,如果有选择的,就返回true
if(buttons[i].checked){
return true;
}
//如果都没有选择,返回false
alert("单选按钮必须选一个");
return false;
}
}
</script>

</body>

<!-- 你现在把body内的内容都替换掉,我测试过,可以的。 -->本回答被提问者采纳
相似回答