红色部分取不到值,不知为什么?
function trim(s)
{
alert("trim(s)" + " " + s);
return s.replace( /^\s*/, "" ).replace( /\s*$/, "" );
}
function validate(form)
{
var errStr = "";
alert("validate");
var username = trim(form.user.name.value);
var userpassword = trim(form.password.value);
if (username == "" || username == null)
{
errStr += "您的用户名必须输入";
}
if (userpassword =="" || userpassword == null) {
errStr += "请输入密码";
}
if (errStr == "")
{
return true;
}
else
{
alert(errStr);
return false;
}
}
<s:form action="Login" onsubmit="validate(this)">
<table>
<tr>
<!-- 生成一个用户名文本输入框 -->
<s:textfield name="user.name" label="用户" />
<s:textfield name="user.password" label="密码" />
</tr>
<tr>
<s:submit value="登录"/>
</tr>
</table>
</s:form>
------解决方案--------------------
function validate(form)
参数this确定是form?还是document?
试下document.form
------解决方案--------------------
------解决方案--------------------
改成:
<s:form action="Login" name="form1" onsubmit="validate(form1)">
试试。。
------解决方案--------------------
应该为 var username = trim(document.form.user.name.value);
t他首先在window 中 又在document中 form 包含在docuement中
------解决方案--------------------
加上document试试
一般获取value的值是用document.form(Form名字).name(属性名字).value;
------解决方案--------------------
form.user.name.value您的form没有起名字啊
如果没有名字这样是获得不到的,给form起个名字或者Form【个数】第几个就写第几个