Validform控件其實用起來挺方便的,直接百度就能找到官網,有直接的demo做參考。
這些我就不提了,我所要說的是關於Validform控件的ajax的提交。
Validform中有個參數ajaxPost選擇true和false,如果選擇true的時候要注意,前台form上的action地址是無效的,所以你可以寫可以不寫,但一定要寫 method,那麼提交表單的地址就要在Validform 里設置,Validform有個參數是URL其實很明顯了,我就不用贅述了。但是值得注意的是其提交成功后的返回值,根據Validform文檔中 對於callback的描述返回的是json對象,所以在控制器中返回時應該是string,返回"{ \"info\":\"用户不存在,请注册后登陆\", \"status\":\"n\" }";很明顯這是返回失敗的結果,info后的內容表示前台提示信息,status表示成功或失敗,可以判斷status的值來跳轉頁面,達到自己想要的效果。
但是還有一種情況,有時候Validform不能ajax提交,即選擇false,那麼這個時候前台form上的action地址就是正真的提交地址了,這是設置callback參數已經不起作用了,你發現會直接跳轉到一個空白的頁面,這個時候我們需要加入一個iframe內連框架 ,隱藏即可,而且要注意iframe要在form標籤內,那麼怎麼讓返回后調到這個iframe中呢,在form上運用target屬性,綁定iframe內連框的id即可。你可以先不隱藏iframe試試效果,那麼怎麼跳轉頁面呢?我們再回到callback函數,這個時候我們就要重寫callback函數了,在js里自己寫一個callback函數,比如:function callback_(){},當你只寫了這個還還是不夠的,對還有返回值,在控制器中這個時候的返回值還是string 但返回的內容不一樣了,
返回"<script langeuage=javascript>window.parent.callback_('" + "{ \"info\":\"数据提交成功!\", \"status\":\"y\" }" + "')</script>";我想你看到我寫的返回值你應該就清楚了,最後注意重寫的callback函數要對應。
這是本人在用這個控件是遇到的最大的問題,現在分享給大家,有什麼不爭取的地方還請指正,本人菜鳥一枚!
這是Validform控件的網址:http://validform.rjboy.cn/