摘要:简单介绍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. SQLite的使用--SQLite语句

    一.SQLite的介绍   1.为什么要存储数据?        1.1 手机数据大多都是从网络加载的,不存储,每次滚动界面都要从新发送网络请求加载数据,浪费流量      1.2 当用户没网的时候, ...

  2. AJAX-----02远古时期的ajax

    其实也可以利用创建元素然后用添加属性的方法进行请求后端的

  3. vs2005水晶报表无法运行在X64机器上

    要下载补丁:CRRedist2005_X64.msi http://download.csdn.net/download/gcy007/7106933

  4. POJ 3281:Dining(最大流)

    http://poj.org/problem?id=3281 题意:有n头牛,f种食物,d种饮料,每头牛有fnum种喜欢的食物,dnum种喜欢的饮料,每种食物如果给一头牛吃了,那么另一个牛就不能吃这种 ...

  5. nginx 设置 fastcgi缓存

    #增加调试信息 add_header X-Cache-CFC "$upstream_cache_status - $upstream_response_time"; fastcgi ...

  6. LeetCode----263. Ugly Number(Java)

    package isUgly263; /* * Write a program to check whether a given number is an ugly number. Ugly numb ...

  7. 搭建自己本地yum源

    1.挂载系统光盘(注:medi下的cdrom是我自己创建的,可以挂载在任意目录) [root@liutao ~]# mount /dev/cdrom /media/cdrom/ 2.修改yum配置文件 ...

  8. 20160411002 经典SQL语句大全

    一.基础 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备 ...

  9. 在Outlook中修改IMAP邮件账户的存储位置

    使用Outlook收发邮件,但是不想把邮件保存在默认的C盘. 对于POP3账户,Outlook提供了变更数据文件目录的方法,但是IMAP账户无法修改. 网上搜索了很多资料,终于找到一个可行的办法,整理 ...

  10. 在用busybox制作系统过程中遇到的问题

    遇到的问题: 1.开机报错: 在做完整个系统之后重启出现了这个报错 VFS: Cannot open root device "sda2" or unknown-block(0,0 ...