如题,校验如下表单,不知怎么的老是jQuery返回不了数据:htlm:<script src="jquery-1.2.6.js" type="text/javascript"></script>
<script src="json2.js" type="text/javascript"></script>
    <script type="text/javascript">
    
    $(document).ready(function (){   
        $('#name').blur(function (){ //写为blur事件,输入用户名在失去焦点的时候进行验证   
               var params=$('#name').serialize(); //序列化表单的值,与prototype中的form.serialize()相同   
                    $.ajax({   
                    url :'ValidateName',  //后台处理程序   
                    type:'post',    //数据发送方式   
                    dataType:'json',   //接受数据格式   
                    data:params,   //要传递的数据   
                    success:update_page //回传函数(这里是函数名)   
                    });   
             });   
            
     });   
    
    
     function update_page (json) { //回传函数实体,参数为XMLhttpRequest.responseText  
        var str=json.tip;   
            
            $("#tip").html(str);   
     }        
    
    
    </script>    
   
  </head>
  
  <body><center>
   <h3>请输入注册信息</h3>
   <span id="tip" style="color:red;font-weight:bold"></span>
   <s:form action="regist">
<s:textfield id="name" label="用户名"/>
<s:textfield name="pass" label="密码"></s:textfield>
<s:textfield name="email" label="邮箱"></s:textfield>
<s:textfield name="vercode" label="验证码"></s:textfield>
<s:submit value="注册"></s:submit>
</s:form>后台action代码(使用的注解,xml形式的好像得设定一个json的返回参数,不过我不确定注解形式好像不用的呀):
@ParentPackage("json-default")
public class ValidateAction extends ActionSupport {

private String tip;
private String name;
private UserService userservice;


public UserService getUserservice() {
return userservice;
}
public void setUserservice(UserService userservice) {
this.userservice = userservice;
}
public String getTip() {
return tip;
}
public void setTip(String tip) {
this.tip = tip;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}

@Action(value="/ValidateName", 
//使用results属性为该方法指定Result映射
results={@Result(name="success" , type="json")}
)
public String execute() throws Exception {

if (userservice.validName(name))
{

setTip( "你好!" + name
+ ", 这个用户名可用!");

}
else
{
setTip( "系统中已有" + name
+ "用户名,请重新选择一个!");

}

return SUCCESS;
}

}
在jQuery的回调函数 update_page 中提示json 未定义,返回不了数据。整了半天了求救

解决方案 »

  1.   

    var params=$('#name').serialize();  jquery 是不允许这么传递参数的你的name里不就一个值吗  直接写就行了 为什么还要序列化
      

  2.   

    参数要不就自己手动拼写成jsion
    要不然就用$('#form').serialize()作为参数 
    将form的所有参数都传递到action
      

  3.   

    在action中  你要写response.getWriter().write(arg0)  不要写return sucess的  这样你就可以在回调函数中得到参数了
      

  4.   

    你的struts配置文件列??
     package要extends  json-default这个包.才行的..
      

  5.   

    你的struts配置文件列??
     package要extends  json-default这个包.才行的..
      

  6.   

    呵呵!找到问题出在哪了。谢谢各位了,struts注解跟xml的差不多