layui彈出表單提交后,界面model驗證部分起作用


情況1----input屬性中type=submit時驗證都可以起作用,但是彈出層表單的返回值不能獲取,所以用ajax二次提交后會出現重復添加數據的問題

情況2----input屬性中type=button時驗證部分起作用,其他正常,暫時看到的不起作用是required屬性不起作用,正則表達式可以完美提醒

初步判斷原因可能是用ajax+button表單並未完成提交,model的required屬性驗證必須在提交后台控制器后刷新提交頁面才會出現,但是button方式並刷新界面,正則表達式的就算不刷新界面,input失去焦點時也會判斷

問題找到了那就開始解決,既然沒有提交導致的驗證失效那就提交一次

如下代碼,控制器設置為返回ActionResult,如果驗證通過則直接添加返回Json對象執行success命令。如果后台驗證ModelState.IsValid未通過則返回View對象執行error命令。在error命令中提交表單,則有返回命令,完美解決問題。

 $("#mysubmit").click(function () {
            var index = parent.layer.getFrameIndex(window.name); //先得到當前iframe層的索引
            $.ajax({
                url: "/scjhtj/GC_info/",
                type: "post",
                dataType: "json",
                data: $("#form1").serialize(),
                success: function (data) {
                    if (data.Code == 0) {
                        parent.layer.close(index); //再執行關閉
                        parent.refreshProj(0, null);//0添加,1編輯,2查詢
                        parent.layer.msg(data.Msg), { time: 500 };
                    } 
                },
                error: function (data) {
                    $("#form1").submit();
                }
            })

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM