红色部分取不到值,不知为什么? 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>

解决方案 »

  1.   

    function validate(form) 参数this确定是form?还是document?
    试下document.form
      

  2.   

    改成:
    <s:form action="Login" name="form1" onsubmit="validate(form1)"> 
    试试。。
      

  3.   


    我改为
    function validate(form)
    {
    var errStr = "";
    if(form == document) {
    alert("documnet");   
    }
    else {
    alert("form");
    }
    var username = trim(form.user.name.value);
    var userpassword = trim(form.user.password.value);打印出来"form",不知这样能不能判断参数form不是document?
      

  4.   


    1.我修改为
    function validate(form)
    {
    var errStr = "";
    alert(form.user.name.value);
    var username = trim(form.user.name.value);
    var userpassword = trim(form.user.password.value);
                    ...
    打印不出任何信息(没有弹出对话框)。
    2.为form增加name属性<s:form action="Login" name="user" onsubmit="validate(this)"> 
    function validate(form)
    {
    var errStr = "";
    alert(form.name.value);
                    ...
    打印出undefined。
    3.<s:textfield name="name" label="用户" />这样写textfield的name是"name"吧?
      在function validate(form)中可以用form.name.value取到值
      <s:textfield name="user.name" label="用户" />这样写textfield的name如果是"user.name"的话
      如何在function validate(form)中取到该textfield的值
      

  5.   


    试过该修改
    function validate(form)
    {
    var errStr = "";
    alert(form.user.name.value);
    没有对话框弹出。
      

  6.   

    应该为  var username = trim(document.form.user.name.value); 
    t他首先在window 中 又在document中 form 包含在docuement中
      

  7.   


    我试着alert(document.form.user.name.value);
    但是没有对话框弹出。
    我觉得那个validate(this)传入的是当前form 
      

  8.   

    加上document试试
    一般获取value的值是用document.form(Form名字).name(属性名字).value;
      

  9.   

    form.user.name.value您的form没有起名字啊
    如果没有名字这样是获得不到的,给form起个名字或者Form【个数】第几个就写第几个