1. 程式人生 > >SpringMVC+AJAX登入表單驗證問題

SpringMVC+AJAX登入表單驗證問題

畢業設計,使用springMVC+AJAX(jquery)實現登入表單驗證問題,將遇到的問題記錄下來

1 controller層可以接收到前臺請求引數,但是success和error都不執行

無圖言叼

這是js

<script type="text/javascript">
		$(document).ready(function(){
			$("#su").click(function(){
				$.ajax({
					type:"POST",
					url:"<%=basePath%>manager/host.action",
					data :{
						manUsername : $("#manUser").val(),
						manPassword : $("#manPass").val(),
					},
					async:true,
					dataType:"json",
					success : function(param){	
						alert("登陸成功");
					},
					error : function(){
					   alert("登入失敗");
					}
				});
			});
		});
	</script> 

這是jsp表單

<form role="form" method="post" id="login">
						<div class="form-group">
							<label for="manUsername">使用者名稱:</label>
							<input id="manUser" class="form-control" type="text" name="" />
						</div>
						<div class="form-group">
							<label for="manPassword">密碼</label>
							<input id="manPass" class="form-control" type="password" name="" />
						</div>
						<input id="su" class="btn btn-success" type="submit" value="登入" />
						<input class="btn btn-success" type="reset" value="取消" />
					</form>

別問我發生了啥,後臺controller層可以打印出來使用者名稱,但是success和error都不執行


想想也是好氣啊,連百度帶問同學,終於發現了一個讓自己膀胱爆炸的錯誤。。對!就是data裡面多了一個逗號


好氣哦


2  點選登入按鈕之後呢,頁面自動重新整理,最直觀的顯示就是警告框一閃而過。。。。

這個問題還好點,百度了一下,發現form表單就是自動重新整理的,如果想阻止他自動重新整理的話,就得將form換成div,或者將submit換成button.我採用的是後者,問題解決,但是回車鍵就不能用了,只能手動點選登入,難道要再繫結一個回車事件?回來試驗一下

3 登入後,ajax不執行success,而是執行error

這個問題也挺坑,但是百度是強大的,親愛的度度告訴我,是我的後臺返回值有問題,好,那老子給你看看我的後臺controller

	@RequestMapping(value = "host.action")
	public @ResponseBody 
	       String managerWantToLogin(Manager man,Model model) {
		System.out.println(man.getManUsername());
		if(managerService.checkLogin(man)) {
			List<Dishes> list = dishesService.findDishesListByType(null);
			List<DishesType> didhesTypeList = dishesTypeService.findDidhesTypeList();
			List<Orders> orderList = ordersService.getOrderList(null);
			model.addAttribute("orderList", orderList);
			model.addAttribute("dishesTypeVoList", didhesTypeList);
			model.addAttribute("dishesVoList", list);
			return "YES";
		}else {
			return "NO";
		}
			
	}

媽的,怕不怕,我加上註解了

結果,度度一聲冷笑

“你返回的是個字串,那你告訴我,你的dataType還有何用,不報錯更待何時”

可樂,卒。





總結  1 一定要細心,想什麼中英文引號,逗號之類的一定不要忘了

        2 form配合submit會自動重新整理,將submit改成button就好了(但是回車鍵就不能登入了,可能需要重新繫結事件)

3 如果後臺返回的是個簡單的字串,而不是一個物件,那麼dataType:json就不要加了,他會認為你這個傢伙不厚道,說好的返回json,而你個狗東西卻給我個字串,老子不伺候了,自己玩去吧


苟利程式設計生死以,豈因BUG趨避之