摘要:简单介绍form的提交方式、与validatebox的结合使用。

一:form简介

Easyui中的form有两种提交方式、结合自己新添加的一种ajax提交方式、本文简单说明form的三种提交方式、和结合validatebox使用来校验基本信息。

二:form提交

以登录为例:下面是登录页面、注意要导入easyui所需要的css和js。

要引入的css+js:

<link rel="stylesheet" type="text/css"href="css/easyui/default/easyui.css">
<link rel="stylesheet" type="text/css" href="css/easyui/icon.css">
<link rel="stylesheet" type="text/css" href="css/easyui/demo.css">
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery.easyui.min.js"></script>

登录的div和表单:

简单说明:

1、登录是使用dialog来作为界面的、初始化dialog有几种方式——(1)使用class="easyui-dialog"定义、使用data-options="xxx"来定义dialog属性、这种适合只具有基本样式、不具有与后台交互功能的时候的页面使用。(2)使用js初始化、适合与后台交互的界面使用、(3)可以混合使用。

1、通过ajax提交:

loginAndregist = $('#loginAndregist').dialog({
closable:false,
modal:true,
draggable:false,
buttons:[{
text:'注册',
handler:function(){
$('#regist').dialog('open');
}
},{
text:'登录',
handler:function(){
if( $('#loginInputForm').form('validate')){
$.ajax({
url:'login_login.action',
data:$('#loginInputForm').serialize(),
cache:false,
dataType:'text',
success:function(r){
console.info(r);
if(r == "success"){
$('#loginAndregist').dialog('close');
$.messager.show({
title : '提示',
msg : '登录成功'
});
}else{
$.messager.alert('标题','用户名密码错误');
}
}
});
}
}
}],
});

简单说明:if( $('#loginInputForm').form('validate')){...}是将form与其内部的validatebox绑定、可以使用validatebox提供的校验规则来校验输入。若不使用这个而直接使用ajax提交、则不会使用validatebox提供的校验规则、当然也可以自己加校验方式、onSubmit()。

2、通过先初始化form、再在点击登录触发函数中提交

初始化form表单:

//初始化登录表单
loginInputForm = $('#loginInputForm').form({
url:'login_login.action',
success:function(r){
console.info(r);
if(r == "success"){
$('#loginAndregist').dialog('close');
$.messager.show({
title : '提示',
msg : '登录成功'
});
}else{
$.messager.alert('标题','用户名密码错误');
}
}
});

点击登录时提交表单:

loginAndregist = $('#loginAndregist').dialog({
closable:false,
modal:true,
draggable:false,
buttons:[{
text:'注册',
handler:function(){
$('#regist').dialog('open');
}
},{
text:'登录',
handler:function(){
loginInputForm.submit();
}
}],
});

简单说明:这里不再需要像ajax一样添加一个校验的if、因为这种方式的form是与validatebox绑定的、会自动校验。

3、直接在点击登录触发函数中提交

loginAndregist = $('#loginAndregist').dialog({
closable:false,
modal:true,
draggable:false,
buttons:[{
text:'注册',
handler:function(){
$('#regist').dialog('open');
}
},{
text:'登录',
handler:function(){
if( $('#loginInputForm').form('validate')){
$('#loginInputForm').form('submit',{
url:'login_login.action',
onSubmit: function(){
console.info('do some check !');
},
success : function(r){
console.info(r);
console.info(r);
if(r == "success"){
$('#loginAndregist').dialog('close');
$.messager.show({
title : '提示',
msg : '登录成功'
});
}else{
$.messager.alert('标题','用户名密码错误');
}
}
});
}
}
}],
});

$('#loginInputForm').form('submit',{...})、当点击登录按钮时会直接提交表单、红色部分可以对表单提交之前做一些操作、比如校验。

三:form注意事项

注意获取对象的不同、显示隐藏的时候、获取的是包含form表单的div、提交的是form。两者千万不要弄混了、所以使用jquery获取这两个节点时要注意id的区别、
1、获取div的id用于将div初始化成dialog: $('#divId').dialog(...);
2、获取div中的form的id用于初始化form表单:$('#formId').form(...);
3、三种提交表单方式:(1)在div中使用ajax提交、(2)将初始化好的表单提交:$('#formId').form().submit();(3)在登录按钮触发函数中$('#formId').form('submit',{xxx})

四:form提交网页完整(包括注册)

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <html> <base href="<%=basePath%>"> <title>login</title> <link rel="stylesheet" type="text/css" href="css/easyui/default/easyui.css">
<link rel="stylesheet" type="text/css" href="css/easyui/icon.css">
<link rel="stylesheet" type="text/css" href="css/easyui/demo.css">
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery.easyui.min.js"></script>
<script type="text/javascript">
/*
注意获取对象的不同、显示隐藏的时候、获取的是包含form表单的div、提交的是form。两者千万不要弄混了、所以使用jquery获取这两个节点时要注意id的区别、
1、获取div的id用于将div初始化成dialog: $('#divId').dialog(...);
2、获取div中的form的id用于初始化form表单: $('#formId').form(...);
3、三种提交表单方式:(1)在div中使用ajax提交、(2)将初始化好的表单提交: $('#formId').form().submit();(3)在登录按钮触发函数中$('#formId').form('submit',{xxx})
*/ //节点的引用、当被初始化一次之后、后面就可以直接拿来使用了
var loginAndregist;
var loginInputForm;
var registForm;
$(function(){
//初始化登录窗口
loginAndregist = $('#loginAndregist').dialog({
closable:false,
modal:true,
draggable:false,
buttons:[{
text:'注册',
handler:function(){
$('#regist').dialog('open');
}
},{
text:'登录',
handler:function(){
//loginInputForm.submit(); if( $('#loginInputForm').form('validate')){
$.ajax({
url:'login_login.action',
data:$('#loginInputForm').serialize(),
cache:false,
dataType:'text',
success:function(r){
console.info(r);
if(r == "success"){
$('#loginAndregist').dialog('close');
$.messager.show({
title : '提示',
msg : '登录成功'
});
}else{
$.messager.alert('标题','用户名密码错误');
}
}
});
}
/*
if( $('#loginInputForm').form('validate')){
$('#loginInputForm').form('submit',{
url:'login_login.action',
onSubmit: function(){
console.info('do some check !');
},
success : function(r){
console.info(r);
console.info(r);
if(r == "success"){
$('#loginAndregist').dialog('close');
$.messager.show({
title : '提示',
msg : '登录成功'
});
}else{
$.messager.alert('标题','用户名密码错误');
}
}
});
}*/
}
}],
});
//初始化登录表单
loginInputForm = $('#loginInputForm').form({
url:'login_login.action',
success:function(r){
console.info(r);
if(r == "success"){
$('#loginAndregist').dialog('close');
$.messager.show({
title : '提示',
msg : '登录成功'
});
}else{
$.messager.alert('标题','用户名密码错误');
}
}
}); //初始化注册窗口
$('#regist').show().dialog({
modal:true,
closed:true,
draggable:true,
buttons:[{
text:'确认',
handler:function(){
$('#registForm').submit();
}
},{
text:'取消',
handler:function(){
$('#regist').dialog('close');
}
}],
}); //初始化注册表单
registForm = $('#registForm').form({
url:'login_regist.action',
success : function(r){
console.info(r);
if(r == "success"){
$('#regist').dialog('close');
$.messager.show({
title : '提示',
msg : '注册成功'
});
}else{
$.messager.show({
title : '警告',
msg : '注册失败'
});
}
}
});
});
</script> <div id="loginAndregist" title="用户登录" style="width:300px;height:200px;">
<form id="loginInputForm" method="post" action="logion_login.action">
<table>
<tbody><tr>
<th align="right">username: </th>
<td><input type="text" class="easyui-validatebox" required="true" name="username"></td>
</tr>
<tr>
<th align="right">password: </th>
<td><input type="text" class="easyui-validatebox" required="true" name="password"></td>
</tr>
</tbody></table>
</form>
</div> <div id="regist" title="用户注册" style="width:300px;height:200px;display: none;">
<form id="registForm" method="post" action="logion_regist.action">
<table>
<tbody><tr>
<th align="right">username: </th>
<td><input type="text" class="easyui-validatebox" required="true" name="username"></td>
</tr>
<tr>
<th align="right">password: </th>
<td><input type="text" class="easyui-validatebox" required="true" name="password"></td>
</tr>
<tr>
<th align="right">confirmpassword: </th>
<td><input type="text" class="easyui-validatebox" required="true" name="confirmpassword"></td>
</tr>
</tbody></table>
</form>
</div>

java_easyui体系之目录 [转]的更多相关文章

  1. java_easyui体系之DataGrid(4)[转]

    一:简介 在前面DataGrid(3)的基础上添加后台的实现.本来是想只搭建前台页面的.后台不写.现在觉得还是都实现好点.从真实情况出发.后台用的ssh. 1. 新增冻结列功能. 2. 实现界面的添加 ...

  2. java_easyui体系之DataGrid(3)[转]

    一:简介 在2的基础上实现增删改.增.改都是通过行编辑来实现的.具体业务逻辑: 1. 增加一条记录的时候: a) 在datagrid表格最前端增加一行(当然也可在指定位置增加.)增加的行的字段必须与要 ...

  3. java_easyui体系之DataGrid(2)[转]

    一:简介 在1的基础上添加layout组件.实现通过条件动态的从后台查询数据到前台展示.使用的方式是将查询单独作为一个layout中的一个面板. 二:关键之处 1.效果图: 2.左侧的折叠组件: 折叠 ...

  4. java_easyui体系之DataGrid(1)[转]

    一:简介 以表格的形式展示数据.项目中式很常见的一个使用.table展示数据.牵扯到分页.上一页下一页.首页.尾页.翻页.选中展示的记录用于操作.总记录数等等.使用DataGrid很容易实现这一点. ...

  5. Java_io体系之PipedWriter、PipedReader简介、走进源码及示例——14

    Java_io体系之PipedWriter.PipedReader简介.走进源码及示例——14 ——管道字符输出流.必须建立在管道输入流之上.所以先介绍管道字符输出流.可以先看示例或者总结.总结写的有 ...

  6. Java_io体系之BufferedWriter、BufferedReader简介、走进源码及示例——16

    Java_io体系之BufferedWriter.BufferedReader简介.走进源码及示例——16 一:BufferedWriter 1.类功能简介: BufferedWriter.缓存字符输 ...

  7. View事件体系

    View事件体系 文章目录 View事件体系 一.Android View基础知识 1.1 View简介 1.2 View分类 1.3 View的结构 1.4 View的坐标 1.4.1 Androi ...

  8. Java_io体系之RandomAccessFile简介、走进源码及示例——20

    Java_io体系之RandomAccessFile简介.走进源码及示例——20 RandomAccessFile 1.       类功能简介: 文件随机访问流.关心几个特点: 1.他实现的接口不再 ...

  9. Dubbo源码(五) - 服务目录

    前言 本文基于Dubbo2.6.x版本,中文注释版源码已上传github:xiaoguyu/dubbo 今天,来聊聊Dubbo的服务目录(Directory).下面是官方文档对服务目录的定义: 服务目 ...

随机推荐

  1. ios -- 教你如何轻松学习Swift语法(一)

    目前随着公司开发模式的变更,swift也显得越发重要,相对来说,swift语言更加简洁,严谨.但对于我来说,感觉swift细节的处理很繁琐,可能是还没适应的缘故吧.基本每写一句代码,都要对变量的数据类 ...

  2. 文件上传(java web)

    文件上传: 对表单的要求: * method="post" * enctype="multipart/form-data" * 表单中需要添加文件表单项:< ...

  3. JQ的基本架构

    Jquery的基本架构   引入  以前学习原生JS然后切换到用JQ的时候总觉得很不习惯,甚至有点排斥用JQ.后来自己写项目一直到公司实习用JQ的这段时间,才深深感受到JQ的强大~JQ不仅做到兼容很多 ...

  4. Communication 交流

    1:请不要立马抗拒别人的观点,先沉默下来思考,在做出回应. 2:在与别人交流的时候,请尽量先让别人同意你的观点,找到共同点,让别人回答 "是";

  5. 【笔记】jquery hover的用法

    hover函数格式: $("A").hover(function(){ //当鼠标移入的时候执行第一个函数 },function(){ //当鼠标移出的时候执行第二个函数 }) * ...

  6. 二叉查找树的Java实现

    为了克服对树结构编程的恐惧感,决心自己实现一遍二叉查找树,以便掌握关于树结构编程的一些技巧和方法.以下是基本思路: [1] 关于容器与封装.封装,是一种非常重要的系统设计思想:无论是面向过程的函数,还 ...

  7. Hadoop之hive的drop table恢复

    一.引言: 快下班的时候我开发同事问能不能将hive中drop掉的数据恢复过来,我记得是有开回收站的,当时我回答说可以恢复的. 二.恢复过程: 在之前我有对hadoop的回收站有过了解,就是将hdfs ...

  8. Map.Entry

    Map.Entry Map是java中的接口,Map.Entry是Map的一个内部接口. Map提供了一些常用方法,如keySet().entrySet()等方法,keySet()方法返回值是Map中 ...

  9. Java堆和栈详解

    Java把内存分成两种,一种叫做栈内存,一种叫做堆内存 在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配.当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间 ...

  10. HashMap代码示例

    package com.shushine.framework.第七章Java标准类库;import java.util.HashMap;import java.util.Iterator;import ...