submit提交判断

body部分

       <form action='https://www.baidu.com' method='post' >
                  用 户 名:<input type="text" name="username">
                                <span class='state1'>请输入用户名</span><br/><br/>
                  密  码:<input type="password" name="password">
                                  <span class='state2'>请输入密码</span><br/><br/>
                  确认密码:<input type="password" name="repass">
                                <span class='state3'>请输入确认密码</span><br/><br/>
                  邮  箱:<input type="text" name="email">
                                <span class='state4'>请输入邮箱</span><br/><br/>
                  <input type="submit" class="submit" value="登录">
      </form>

style部分

                  .state1{
                          color:#aaa;
                  }
                  .state2{
                          color:#000;
                  }
                  .state3{
                          color:red;
                  }
                  .state4{
                          color:green;
                  }

script部分

     <script type="text/javascript" src="../js/jquery-1.8.3.js"></script>
     <script type="text/javascript">
              $(function(){
                       var ok1=false;
                      var ok2=false;
                      var ok3=false;
                      var ok4=false;
                      // 验证用户名
                      $('input[name="username"]').focus(function(){
                                 $(this).next().text('用户名应该为3-20位之间').removeClass('state1').addClass('state2');
                      }).blur(function(){
                                 if($(this).val().length >= 3 && $(this).val().length <=12 && $(this).val()!=''){
                                           $(this).next().text('输入成功').removeClass('state1').addClass('state4');
                                           ok1=true;
                                }else{
                                           $(this).next().text('用户名应该为3-20位之间').removeClass('state1').addClass('state3');
                                }
                     });

                     //验证密码
                     $('input[name="password"]').focus(function(){
                               $(this).next().text('密码应该为6-20位之间').removeClass('state1').addClass('state2');
                     }).blur(function(){
                               if($(this).val().length >= 6 && $(this).val().length <=20 && $(this).val()!=''){
                                           $(this).next().text('输入成功').removeClass('state1').addClass('state4');
                                           ok2=true;
                               }else{
                                           $(this).next().text('密码应该为6-20位之间').removeClass('state1').addClass('state3');
                               }

                     });

                    //验证确认密码
                    $('input[name="repass"]').focus(function(){
                               $(this).next().text('输入的确认密码要和上面的密码一致,规则也要相同').removeClass('state1').addClass('state2');
                    }).blur(function(){
                               if($(this).val().length >= 6 && $(this).val().length <=20 && $(this).val()!='' && $(this).val() == $('input[name="password"]').val()){
                                          $(this).next().text('输入成功').removeClass('state1').addClass('state4');
                                          ok3=true;
                               }else{
                                          $(this).next().text('输入的确认密码要和上面的密码一致,规则也要相同').removeClass('state1').addClass('state3');
                               }

                    });

                    //验证邮箱
                    $('input[name="email"]').focus(function(){
                                          $(this).next().text('请输入正确的EMAIL格式').removeClass('state1').addClass('state2');
                    }).blur(function(){
                               if($(this).val().search(/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/)==-1){
                                          $(this).next().text('请输入正确的EMAIL格式').removeClass('state1').addClass('state3');
                               }else{
                                          $(this).next().text('输入成功').removeClass('state1').addClass('state4');
                                          ok4=true;
                               }

                    });

                    //提交按钮,所有验证通过方可提交

                    $('.submit').click(function(){
                               if(ok1 && ok2 && ok3 && ok4){
                                          $('form').submit();
                               }else{
                                          alert("请正确注册后登录")
                                          return false;
                               }
                    });

            });
    </script>

转载于:https://www.cnblogs.com/y369/p/9255362.html

<think>我们正在使用FastAdmin框架,需要了解表单提交后如何判断操作结果。根据FastAdmin的常见做法,表单提交后通常会返回一个JSON格式的数据,其中包含状态码、消息等信息。在FastAdmin中,表单提交一般通过Ajax进行。提交后,服务器会处理请求并返回一个JSON响应。我们可以根据这个响应中的`code`字段来判断操作是否成功。通常,`code`为1表示成功,为0表示失败。例如,在FastAdmin的控制器中,我们可能会这样返回:```phpreturnjson(['code'=>1,'msg' =>'操作成功']);```或者失败时:```phpreturnjson(['code'=>0,'msg' =>'操作失败']);``` 在前端,我们可以通过表单提交的回调函数来处理这个响应。FastAdmin内置的表单提交事件已经封装了这些处理,但如果我们想自定义提交后的行为,可以重写表单的提交事件。 下面是一个示例,展示如何自定义表单提交后的处理: ```javascript//在表单提交前,绑定一个事件来覆盖默认的提交行为$('#your-form-id').data('events', null); //清除之前绑定的事件(如果需要) $('#your-form-id').on('before-submit', function(e,data){//这里可以做一些提交前的操作}).on('after-submit',function(e, data) {//提交后的事件处理,data是服务器返回的JSON数据if(data.code ==1) {//操作成功toastr.success(data.msg);//可以执行其他操作,比如关闭弹窗、刷新表格等}else {//操作失败toastr.error(data.msg);}});``` 另外,我们也可以直接使用FastAdmin的API提交表单,并处理返回结果: ```javascript//使用FastAdmin的Form.api.bindevent绑定表单事件Form.api.bindevent($('#your-form-id'), function(data,ret){//这里的ret就是服务器返回的数据if (ret.code==1) {//操作成功//这里可以添加自定义操作}else {//操作失败returnfalse;//阻止默认的成功处理(比如默认会关闭弹窗)}}, function(){//提交前回调});``` 注意:上述代码中,`Form.api.bindevent`是FastAdmin封装的方法,它已经默认处理了表单提交的Ajax请求以及成功和失败的消息提示。如果我们只需要在成功或失败后做一些额外操作,可以在回调函数中添加。另外,如果我们希望表单提交成功后关闭弹窗并刷新表格,可以使用FastAdmin提供的内置方法:```javascriptForm.api.bindevent($('#your-form-id'), function(data,ret){//这里可以添加自定义操作,比如://如果返回的数据中有url,则跳转到该urlif(ret.url){location.href =ret.url;} },function(){//提交前回调});``` 或者,如果我们想要在提交成功后刷新父级表格(比如在弹窗中编辑后刷新列表),可以使用:```javascriptForm.api.bindevent($('#your-form-id'), function(data,ret){//刷新父级表格parent.$('.table').bootstrapTable('refresh');}, function(){//提交前回调}); ```总结:在FastAdmin中,判断表单提交后的操作结果主要是通过服务器返回的JSON数据中的`code`字段。我们可以在表单的提交回调函数中根据这个字段的值来执行不同的操作。参考文献:[^1]:FastAdmin中,表单提交的返回结果通常包含`code`和`msg`字段。[^2]:使用`Form.api.bindevent`方法可以方便地绑定表单事件,并处理提交后的结果。 §§相关问题§§1.在FastAdmin中如何自定义表单提交前的验证?2.FastAdmin表单提交后如何刷新父页面? 3.如何修改FastAdmin表单提交的默认提示消息?</think>在 FastAdmin 框架中,表单提交判断操作结果主要通过以下方式实现: ### 1. 通过服务器返回的 JSON 数据判断 FastAdmin 的表单提交默认使用 Ajax 请求,服务器会返回 JSON 格式的响应数据: ```php // 控制器中返回示例 public function save() { // 处理表单数据... if($success){ $this->success('操作成功'); // 自动返回 code=1 的 JSON }else{ $this->error('操作失败'); // 自动返回 code=0 的 JSON } } ``` ### 2. 前端处理响应结果 在表单提交后,可以通过回调函数处理服务器响应: ```javascript Form.api.bindevent($("form[role=form]"), function(data, ret){ // data: 原始响应数据 // ret: 解析后的JSON对象 if (ret.code === 1) { // 操作成功处理 toastr.success(ret.msg); // 可选操作:刷新表格/关闭弹窗等 parent.$(".btn-refresh").trigger("click"); } else { // 操作失败处理 toastr.error(ret.msg || "操作失败"); } return false; // 阻止默认行为 }); ``` ### 3. 关键响应字段说明 服务器返回的 JSON 包含以下核心字段: - `code`: 状态码(1=成功,0=失败) - `msg`: 操作结果消息 - `url`: 成功后跳转链接(可选) - `data`: 附加数据(可选) ### 4. 自定义回调处理 如需特殊处理,可覆盖默认回调: ```javascript $('#your-form').data('before-submit', function(){ // 提交前验证 }).data('after-submit', function(data, ret){ // 自定义提交后处理 if(ret.code == 1){ // 自定义成功逻辑 } }); ``` ### 5. 错误处理增强 ```javascript Form.api.bindevent($("#form"), null, function(){ // 提交前回调 }, function(data, ret){ // 提交后回调 if (ret.code === 0) { // 显示详细错误信息 if (ret.data && ret.data.errors) { $.each(ret.data.errors, function(key, value){ toastr.error(value); }); } } }); ``` > **最佳实践**:表单元素需添加 `name` 属性,错误信息会通过 `ret.data.errors` 返回具体字段的验证错误[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值