日期:2014-05-18  浏览次数:20719 次

Javascript中取textfield值的问题
红色部分取不到值,不知为什么?

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【个数】第几个就写第几个