`
2277259257
  • 浏览: 515046 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

EXT提交表单

 
阅读更多

EXT的form表单ajax提交(默认提交方式)   相对单独的ajax提交来说优点在于能省略写参数数组 将按钮添加单击事件   表单验证登陆

  ------------------------------------------------------------------------

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>    

<head>         

   <title>New Document</title>         

   <meta http-equiv="Content-Type" content="text/html; charset=utf-8">        

   <link rel="stylesheet"   type="text/css"    href="lib/ext/resources/css/ext-all.css" />         

   <script type="text/javascript" src="lib/ext/adapter/ext/ext-base.js">         </script>         

   <script type="text/javascript" src="lib/ext/ext-all.js">         </script>    

</head>

<body>         

<script> 

     Ext.onReady(function(){   

             //编码方式 

            Ext.lib.Ajax.defaultPostHeader += '; charset=utf-8';          

         //使用表单提示           

            Ext.QuickTips.init();           

            Ext.form.Field.prototype.msgTarget = 'side';                 

         //定义表单           

            var simple = new Ext.FormPanel({            

                     labelWidth: 75,                      

                     baseCls: 'x-plain',            

                     defaults: {width: 150},             

                     defaultType: 'textfield',//默认字段类型

 

                //定义表单元素            

                    items: [{                   

                             fieldLabel: '帐户',                  

                             name: 'name',//元素名称                   

                             //anchor:'95%',//也可用此定义自适应宽度                  

                             allowBlank:false,//不允许为空                   

                             blankText:'帐户不能为空'//错误提示内容               

                             },{ 

                             inputType:'password',                  

                             fieldLabel: '密码',                  

                             //anchor:'95%',                  

                             name: 'pws',                   

                             allowBlank:false,                 

                             blankText:'密码不能为空'              

                             }],

                     buttons: [{            

                             text: '登陆',        

                             type: 'submit',         

                          //定义表单提交事件         

                             handler:function(){ 

        if(simple.form.isValid()){//验证合法后使用加载进度条                 

             Ext.MessageBox.show({                        

                    title: '请稍等',                          

                    msg: '正在加载...',                        

                    progressText: '',                      

                    width:300,                   

                    progress:true,                   

                    closable:false,               

                    animEl: 'loding'             

             });                       

      //控制进度速度                   

          var f = function(v){             

                    return function(){                    

                           var i = v/11;                       

                            Ext.MessageBox.updateProgress(i, '');            

                    };               

             };

        for(var i = 1; i < 13; i++){                       

            setTimeout(f(i), i*150);              

         }                                      

         //提交到服务器操作      

         simple.form.doAction('submit',{   url:'login.do',  //文件路径   

                                                            method:'post',//提交方法post或get   

                                                            params:'',       //提交成功的回调函数 

                                                            success:function(form,action){                             

                                                                 if (action.result.msg=='ok') {                        

                                                                           document.location='index.html';                         

                                                                 } else {                          

                                                                          Ext.Msg.alert('登陆错误',action.result.msg);  

                                                                 }                    

                                                             },                       

       //提交失败的回调函数                     

                                                            failure:function(){                      

                                                                Ext.Msg.alert('错误','请稍后再试!');                       

                                                             }     

             

          });        

        }                    

                                  

      }         

    },{ 

        text: '取消',       

        handler:function(){simple.form.reset();}//重置表单         

    }]    

  });             

        //定义窗体          

        win = new Ext.Window({              

              id:'win',            

              title:'用户登陆',          

              layout:'fit',   //之前提到的布局方式fit,自适应布局                    

              width:300,             

              height:150,         

              plain:true,             

              bodyStyle:'padding:5px;',

              maximizable:false,//禁止最大化                

              closeAction:'close',               

              closable:false,//禁止关闭             

              collapsible:true,//可折叠            

              plain: true,            

              buttonAlign:'center',          

              items:simple//将表单作为窗体元素嵌套布局            

         });             

         win.show();//显示窗体                       

    });

   </script>   

  </body>

</html> 

 

 

 

 

------------------------------------------------------------------------  

   public ActionForward execute(ActionMapping mapping, ActionForm form,            

                                                  HttpServletRequest     request,

                                                  HttpServletResponse   response) {    

     // 初始化编码方式和输出流      

        response.setContentType("text/json; charset=utf-8");   

        PrintWriter out = null;       

        try {             

              out = response.getWriter();       

        } catch (IOException e) {          

              e.printStackTrace();    

        }         

    // 得到页面传过来的参数        

       String username = request.getParameter("name");       

       String password = request.getParameter("pws");      

       System.out.println("用户名:" + username);        

       System.out.println("密码:" + password);       

    // 请求判断         

       String msg = null;       

        if (username.trim().equals("admin") && password.trim().equals("123")) {           

            msg = "ok";      

         } else {             

            msg = "你的帐户或密码错误";  

         }         

     // 初始化       

        Map map = new HashMap();    

        map.put("success", true);        

        map.put("msg", msg);       

    // 转换成对象,不要转换成数组    

        JSONObject obj = JSONObject.fromObject(map);       

    //          System.out.println(obj);        

    // 输出到列表       

        out.print(obj);      

        return null; 

    }    

分享到:
评论
2 楼 wx819648354 2014-04-15  
然后这是jsp的代码,谢谢
var userEm = new Ext.form.TextField({
name:"username",
fieldLabel:"用户名",
selectOnFocus:true,  //得到焦点时自动选择文本
allowBlank:false,
blankText:"用户名不能为空",
regex:/^([\w]+)(.[\w]+)*@([\w-]+\.){1,5}([A-Za-z]){2,4}$/,//用户名输入格式
    regexText:"用户名格式错误"
});
var userPs = new Ext.form.TextField({
name:"userpass",
inputType:"password",
fieldLabel:"密码",
allowBlank:false,
blankText:"密码不能为空",
maxLength:12,
minLength:6
});
Ext.onReady(
function (){
Ext.QuickTips.init();
Ext.form.Field.prototype.msgTarget = 'side';
var form = new Ext.form.FormPanel({
baseCls: 'x-plain',
frame:true,
labelAlign:"right",
//bodyStyle
defaultType:"textfield",
defaults:{width:150},
items:[userEm,userPs],
keys:[{
key:Ext.EventObject.ENTER,
fn:save,
scope:this
}],
buttons:[{  
  text:"登录",
      type:'submit',
      handler:function save(){
      var userName =  userEm.getValue();
      var userPas = userPs.getValue();
      if(form.form.isValid()){
      form.form.submit({
      waitTitle:"提示",
      waitMsg:"正在进行登录验证,请稍后...",
      url:'LoginServlet',
      method:'post',
  params:{
  userName : userName,
  userPas : userPas
  },
      success:function(form,action){
      if(action.result.waitMsg=="ok"){
     
      document.location='main.jsp';
      }else{
      Ext.Msg.alert('登录失败',action.result.waitMsg);
      }
      },
     
          failure : function(form, action) { 
                            switch (action.failureType) {   
                            case Ext.form.Action.CLIENT_INVALID:   
                                Ext.Msg.alert('错误提示', '表单数据非法请核实后重新输入!');   
                                break;   
                            case Ext.form.Action.CONNECT_FAILURE:   
                                Ext.Msg.alert('错误提示', '网络连接异常!');   
                                break;   
                            case Ext.form.Action.SERVER_INVALID:   
                               Ext.Msg.alert('错误提示', "您的输入用户信息有误,请核实后重新输入!");   
                               form.form.reset();     
                            } 
                        }
      });
      }
      }
    }]
});
//使窗口弹出来
var formWindow = new Ext.Window({

width:400,
height:200,
title:"用户登录",
collapsible:true,
plain: true,
items:form,
//cls :'alpha',
layout:"fit",//布局
closable:false,//使窗口右上角的叉叉消失
draggable:false,//使窗口不能被拖动
bodyStyle:'padding:20px;background-color:00CCFF',
resizable:false //使窗口不能被拉伸
});
formWindow.show();//实现窗口显现
});
1 楼 wx819648354 2014-04-15  
这是servlet的方法,但是一直提交不过去,能帮我看下么
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

request.setCharacterEncoding("utf-8");
String username = request.getParameter("userName");
String userpass = request.getParameter("userPas");
System.out.println(username+"     "+userpass);


String msg=null;
if(username.trim().equals("819648354@qq.com")){
JSONObject jsonObject = new JSONObject();
response.getWriter().write(jsonObject.toString());
response.getWriter().flush();
msg="ok";
}else{
msg="登录失败";
}


}

相关推荐

    EXT提交表单,ASP.NET

    当我们讨论EXT提交表单与ASP.NET的结合时,主要涉及的是EXTJS如何与ASP.NET后端进行数据交互。EXTJS 提供了表单组件(FormPanel)来创建和处理用户输入,而ASP.NET则处理这些数据并进行业务逻辑处理或数据持久化。 ...

    EXT异步提交FORM表单

    在现代Web应用开发中,异步提交表单是一种常见的技术手段,它能够提升用户体验,减少页面刷新带来的数据丢失风险,并能有效提高系统的响应速度。EXT框架(通常指的是Ext JS)作为一种成熟且功能丰富的JavaScript库,...

    ext_表单提交_数据校验

    ### ext_表单提交_数据校验:深入解析与实践 #### 一、文本框输入控件(Ext.form.TextField) 在Ext JS框架中,`Ext.form.TextField`是一种用于收集用户输入的基本控件,它提供了丰富的配置选项来实现数据校验。...

    ext 表单提交

    当用户填写并提交表单时,框架会自动执行这些验证。如果所有验证都通过,表单数据会被序列化为JSON格式,并通过`Ext.Ajax.request`方法发送到服务器。你可以自定义请求参数,如URL、方法(GET或POST)、额外的请求...

    EXT提交服务器的三种方式

    以下是EXT提交服务器的三种方式的详细说明: 1. **EXT的Form表单AJAX提交**:这是EXT中最常见的提交方式,它允许你在不刷新整个页面的情况下与服务器进行异步通信。通过使用`doAction`方法,你可以方便地触发表单的...

    ext表单

    EXT表单还支持异步提交,即通过Ajax技术将表单数据无刷新地发送到服务器。这通常涉及使用Action对象和FormPanel的submit方法。开发者可以自定义提交过程,处理服务器返回的结果,比如显示错误消息或处理成功后的后续...

    Ext 动态加载表单数据

    Ext Form提供了一种结构化的方式来组织这些字段,并提供了验证、提交和数据绑定等功能。 动态加载表单数据涉及到的主要知识点包括: 1. **JSON数据格式**:JSON(JavaScript Object Notation)是一种轻量级的数据...

    EXT4.3实现动态表单全动态

    使用`Ext.form.Basic`和`Ext.form.Panel`,可以轻松实现数据的提交和验证。 2. **EXT4.3动态grid**: - **动态列**:EXT4.3的`Ext.grid.Panel`允许在运行时动态添加、删除和调整列宽。开发者可以通过`columns`配置...

    ext表单设计器,常用表单拖拉实现

    6. **数据绑定**:表单字段可以与后台数据源绑定,实现动态数据加载和提交,这在大数据应用和CRUD操作中尤为常见。 7. **表单验证**:内置的验证机制确保用户输入的数据符合预定规则,提高了数据的准确性和一致性。...

    Ext教程表单表格的使用

    在上述代码的`load`和`submit`方法中,表单数据的加载和提交通过URL与服务器进行交互,`waitMsg`提供了加载提示,`success`和`failure`回调处理操作结果。 总结来说,EXT表单FormPanel和表格GridPanel是EXT JS中...

    EXT dojochina ExtAjax表单提交 L9.rar

    Ext.Msg.alert('失败', '表单提交失败: ' + action.result.message); } }); } else { Ext.Msg.alert('警告', '请检查表单数据!'); } } }] }); ``` 在这个例子中,当用户点击提交按钮时,会触发`handler`...

    ExtJs4.0 表单提交Demo

    在使用Ext Ajax提交表单前,通常需要先将表单数据序列化为JSON或URL编码格式。ExtJs 4.0的FormPanel对象提供了`getForm()`方法获取表单实例,然后通过`form.submit()`或`form.serialize()`方法完成数据的序列化。 ...

    完成的 Ajax 提交表单

    本示例着重介绍如何使用Ext JS框架中的Ajax组件来实现异步提交表单,以及如何处理success和failure回调。 首先,Ext JS是一个强大的JavaScript库,用于构建富客户端应用程序。它提供了丰富的组件模型和数据绑定机制...

    Ext简单应用实例(表单,与后台交互,基本组件等)

    简单的Ext应用实例,包括表单,与后台交互,基本组件等的使用。对于Ext初学者来说挺实用的,适用于Ext 3.0版本

    Ext 添加功能form表单实例

    最后,如果一切正常,则提交表单数据到服务器端指定的URL,并处理成功或失败的回调。 综上所述,这个实例展示了如何在Ext中创建一个完整的表单,包括表单的布局、字段的定义及验证、按钮及事件处理等多个方面。对于...

    Ext 入门 登陆验证表单提交

    // 提交表单逻辑 } }] }); } }); ``` 当用户点击提交按钮时,我们需要捕获这个事件并执行验证。在上面的代码中,我们在按钮的`handler`属性中添加了一个回调函数。在实际的项目中,我们会在这里实现表单数据的...

    Ext2.0 form使用实例的例程

    例如,当用户更改字段值时触发特定操作,或在提交表单前进行额外的验证。 7. **表单提交(Form Submission)**:表单可以以两种方式提交:异步(Ajax)或同步(传统的HTTP请求)。异步提交在后台处理数据,不会刷新...

    SZ_USER.zip_ext js 表单

    表单支持多种验证策略,如服务器端验证、客户端验证,以及在提交前验证整个表单。Grid表单将表格和表单功能相结合,使得用户可以在同一视图下查看和编辑数据,极大地提高了工作效率。 除了上述控件,Ext JS还提供了...

    Ext表单组件实现用户注册

    // 提交表单并处理数据 } }] }] }); } }); ``` 在这个代码段中,我们创建了一个名为`RegistrationApp`的应用,并在其`launch`方法中定义了一个全屏布局的表单。表单包含了三个字段:一个文本字段(username)...

    Ext 表单示例演示 视频

    用户提交表单数据后,这些数据会被发送到服务器,服务器端脚本处理数据并更新数据库,然后返回响应,更新前端界面。 总结来说,这个示例涵盖了Ext JS表单设计、XML数据绑定、GridPanel组件使用以及可能的数据库交互...

Global site tag (gtag.js) - Google Analytics