如题,校验如下表单,不知怎么的老是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 未定义,返回不了数据。整了半天了求救
<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 未定义,返回不了数据。整了半天了求救
要不然就用$('#form').serialize()作为参数
将form的所有参数都传递到action
package要extends json-default这个包.才行的..
package要extends json-default这个包.才行的..