Struts标签和js表单验证的问题

来源:百度知道 编辑:UC知道 时间:2024/05/27 18:16:05
jsp页面代码如下:
<html:form action="xxx.do" onsubmit="javascript:return(checkform());">
<html:text property="name" />
<html:submit>提交</html:submit>
</html:form>
<script type="text/javascript">
function checkform(){
if (document.getElementById("name").value==""){
alert("name不能为空");
document.form1.name.focus();
return false;
}
}
</script>
我让name文本框为空,点击提交按钮,有显示"name不能为空"提示框,但是总是跳转到其他页面,我就是想让表单验证失败之后不进行跳转,直到验证成功.怎么办?
我的表单的值是可以取到的,我的意思是输入表单后,先用JS验证表单,验证通过后才提交表单到action,不通过则不提交表单到action,请看清楚点.

我知道你是什么错,首先你的JavaScript返回了false,但是仍然提交了,这其实已经告诉了你你的JavaScript代码有问题。检查你的JavaScript发现很明显你的form1是根本不纯在的。还要在struts里Form是没有name属性的如果你想让代码正常请在Html:Form里加styleId="form1"就可以了。

标签的那个name是name不是id,所以你只能用getElementsByName("name")[0]

来获得

在if语句的括号后面, 加上return true看下. if为空, 返回false, else 直接返回true

你的document.getElementById("name").value==""写的不对!
应该这样写:document.getElementsByName("name")[0].value==""

或者在<html:text 后加styleId="name"看看是否可以。。。

不知道你的FORM的名称是什么,建议是用form(表单的名称).all('name').value来取值
回答者: ruud_ruud

document.form1.name.focus();

form1 是什么?

你提交的时候JS没有报错吗?