读书人

本人js生手纯新手想用jQuery中封装

发布时间: 2013-07-04 11:45:55 作者: rapoo

本人js新手,纯新手,想用jQuery中封装的ajax来实现不跳转验证用户名是否已经存在,用的SSH的框架
我的想法是将用户名传到action,action通过spring和hibernate到数据库验证是否存在,然后返回结果,存在返回exist,不存在返回not exist。
然后回调函数根据返回的内容确定显示什么提示。

这个事件是在账号框失去焦点的时候触发的,想要的效果是在其后面提示。

但是现在action接受不到用户名,或者是返回值没有传回给回调函数,页面上根本就没有变化。
不知道为什么,求各位大牛帮助!!


<script src="js/validate.js" type="javascript"> </script>
<script src="js/jquery-1.9.1.js" type="javascript"> </script>

<script language="JavaScript">
$(document).ready(function() {
$('#accountname').blur(function(){
var account = $('#accountname').val();
$.get('src/struts/action/CheckAccountName.action?','userid = '+ account,processData);
});
});

function processData(){
if(data=='exist'){
$('#accounthint').html('<p>该账号已经存在</p>');
}
else $(this).html('<p>该账号可以使用</p>');
}





action部分的代码:

public class CheckAccountNameAction extends ActionSupport{
private String userid;
private String result;
private AccountManagerImpl am = new AccountManagerImpl();

public CheckAccountNameAction(String userid) {
this.userid = userid;
}

@Override
public String execute(){
result = am.checkAccountName(this.userid);
//这个函数就是service层的函数
return result;
}



我总觉得是什么部分环节掉了。。
急求帮助啊! jQuery Ajax JavaScript SSH 用户名


[解决办法]
function processData(data){
if(data=='exist'){
$('#accounthint').html('<p>该账号已经存在</p>');
}
else $(this).html('<p>该账号可以使用</p>');
}
[解决办法]
后台没进去,先确认你的action 和xml 配置文件是否匹配。
[解决办法]
额。有几处我看上去不太对。但是我也不知道我对不对..
1、$.get()中的第一个参数URL,不知道是你那么设置的还是我没接触到,我用的SpringMVC,Struts2都快忘了,action有那么长吗=、=,要是我直接就CheckAccountName.action
2、URL后边应该没有“?”吧,如果用问号,可以就
$.get('src/struts/action/CheckAccountName.action?userid = '+ account,了第二个参数就省了
3、第三个参数,我没这么写过,一般都是function(data) {},如果你拆开写的话,调用这个JS后边应该加括号吧?processData(data);
如果还没用的话,用火狐浏览器FireBug追一下吧 应该会有错误,看看到底是哪出毛病了
[解决办法]

引用:
Quote: 引用:

Quote: 引用:

额。有几处我看上去不太对。但是我也不知道我对不对..
1、$.get()中的第一个参数URL,不知道是你那么设置的还是我没接触到,我用的SpringMVC,Struts2都快忘了,action有那么长吗=、=,要是我直接就CheckAccountName.action
2、URL后边应该没有“?”吧,如果用问号,可以就
$.get('src/struts/action/CheckAccountName.action?userid = '+ account,了第二个参数就省了
3、第三个参数,我没这么写过,一般都是function(data) {},如果你拆开写的话,调用这个JS后边应该加括号吧?processData(data);
如果还没用的话,用火狐浏览器FireBug追一下吧 应该会有错误,看看到底是哪出毛病了

说错了,我的action也分层,但是没用src/这么分


这个应该是直接用就可以,会到struts.xml里面找,我觉得我是没有写httpget造成的。

嗯 还是建议先Firebug看一下,排除一下是否是JS的问题
[解决办法]
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

楼上说得对,你没把参数加上。


加上了还是不行 T T


后台方法前面有加[HttpGet]么


没有。。。求解释怎么写。。
另外,那返回的时候也需要http write这样的函数吗?



1、就在方法前面加一个 [HttpGet] 这个表示GET方式访问的方法,记得默认的是post样
2、直接返回值就可以了

读书人网 >JavaScript

热点推荐