jquery easyUI相关
jquery easyUI相关
===================================
easyUI表单验证处理
//jquery easyUI 表单验证不通过让光标定位在第一个未通过验证的input上提示用户。
if(!validateXXXX())
{
console.log("validate");
$("#BoxDivID input").each(function(){
if($(this).hasClass("validatebox-invalid")){
$(this).focus();
return false;
}
});
return;
}
注意事项:
jquery hasClass 判断class是否存在。
jquery each循环,要实现break和continue的功能:
break----用return false;
continue --用return ture;
======================================
input字段设置为easyui-numberbox 只能输入数字的,但通过复制粘帖的方式输入其他字符后出现异常,无法恢复正常,需要重设class样式特殊处理。
$("#addProperty .sortNumber").blur(function(){
if(!$.isNumeric($("#addProperty .sortNumber").val())){
$("#addProperty .sortNumber").addClass("validatebox-invalid");
}
});
======================================
combobox设为只读状态 editable:false,
$("#partner").combobox({
url:'xxxx',
valueField:'partner_id',
textField:'partner_name',
mode:'remote',
delay:500,
editable:false,
onSelect:function(record)
{
//xxx
}
});
======================================
JQuery easyUI扩展验证机制的正则表达式
$.extend($.fn.validatebox.defaults.rules,{
length:{
validator:function(value,param){
var len=$.trim(value).length;
return len>=param[0]&&len<=param[1];
},
message:"输入内容长度必须介于{0}和{1}之间."
},
mobile : {// 验证手机号码
validator : function(value) {
return /^(13|15|18)\d{9}$/i.test(value);
},
message : '手机号码格式不正确(正确格式如:13450774432)'
},
email:{
validator : function(value){
return /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test(value);
},
message : '请输入有效的电子邮件账号(例:abc@126.com)'
}
});
<input class="easyui-validatebox" data-options="required:true,validType:['email','length[0,20]']">
<input id="mobile" type="text" class="easyui-validatebox" validType="mobile" name="mobile" required="true" maxlength="13" style="width:150px"></input>
//JQuery easyUI扩展验证机制的正则表达式
$.extend($.fn.validatebox.defaults.rules, {
length:{validator:function(value,param){
var len=$.trim(value).length;
return len>=param[0]&&len<=param[1];
},
message:"去掉首尾空格后内容长度介于{0}和{1}之间."
}
});
在input里的使用方法:
data-options="required:true,validType:['length[1,50]']"
======================================
easyui-panel 弹窗自适应,当屏幕分辨率大于800px使用800px,否则使用屏幕宽度99%,高度98%。
<div id="p" class="easyui-panel"></div>
var dgwidth = $(window).width()*0.99;
var dgheight = $(window).height()*0.98;
if(dgwidth>800){
dgwidth = 800;
}
if(dgheight>680){
dgheight = 680;
}
$("#dgCreate").window({
title:"panel title",
width: dgwidth,
height:dgheight,
cache:false,
minimizable:false,
maximizable:false,
collapsible:false,
resizable:false,
href:'http://youurl',
modal:true
});
====================================
消息框:
$.messager.alert('警告','警告消息');
$.messager.confirm('确认','您确认想要删除记录吗?',function(r){
if (r){
alert('确认删除');
}
});
===================================
提示框
1. 通过标签创建提示框,给元素添加一个"easyui-tooltip"的类名,无需任何Javascript代码。
<a href="#" title="This is the tooltip message." class="easyui-tooltip">Hover me</a>
2. 通过Javascript创建提示框。
<a id="dd" href="javascript:void(0)">Click here</a>
$('#dd').tooltip({
position : 'right',
content : '<span style="color:#fff">This is the tooltip message.</span>',
onShow : function() {
$(this).tooltip('tip').css({
backgroundColor : '#666',
borderColor : '#666'
});
}
});
===================================
jquey easyui dialog第二次点击时不能正常打开问题解决办法:
把dialog外层div在页面写死的<div id="dgSelectGoodsCategory"></div>变成动态创建的,在关闭后
var dgdiv = $('<div></div>');
dgdiv.attr('id','dgSelectGoodsCategory');
$(document.body).append(dgdiv);
注:在onClose的时候不需要destroy,否则会报错。
$('#dgSelectGoodsCategory').dialog('destroy');
会报错 TypeError: $.data(...) is undefined
$('#dgSelectGoodsCategory').dialog({
title: '选择商品品类',
width: 900,
height: 600,
closed: false,
cache: false,
href: 'URL',
modal: true,
onClose: onSelectGoodsClass
});
===================================
页面跳转,点击菜单和替换URL的两种方法
function returnQueryPage()
{
var url = window.location.href;
url = url.substring(0,url.indexOf("&goods_id="));
url = url.replace("modify?","index/");
url = url.replace(/=/g,"/");
url = url.replace(/&/g,"/");
window.location = url;
/*
$(".sideMenu1 li").each(function()
{
var text = $(this).text();
//菜单名称在后台可以动态配置的,代码里不能这样写死
if(text.indexOf("组合商品档案") != -1)
{
$(this).click();
return;
}
});
*/
}
===================================
绑定table的datagrid值
function getTableOptions()
{
var columns = [[
//{checkbox:true,width:30},
{field:'t_id',width:120,halign:'center',align:'center',title:'模版ID'},
{field:'t_name',width:150,halign:'center',align:'center',title:'模版名称'},
{field:'t_img',width:185,halign:'center',align:'center',title:'模版图片'},
{field:'t_area_num',width:120,align:'center',halign:'center',title:'分区数'},
{field:'t_id2',width:120,halign:'center',align:'center',title:'操作',
formatter:function(value,row,index){
return "<a href=javascript:doDelete('"+row.t_id2+"') style='text-decoration:underline'>删除</a>";
}
}
]];
var data = {
rownumbers:true,
singleSelect:true,
checkOnSelect:false,
selectOnCheck:false,
autoRowHeight:false,
idField:'t_id',
pageSize:10,
pageList: [5,10,15,20,25,30],
pagination:false,
toolbar:'#toolbar1',
onClickRow:clickTable1,
columns:columns
};
return data;
} $(document).ready( function(){
var options = getTableOptions();
$("#my_table").datagrid(options);
query_data();
}); function query_data()
{
$.ajax({
url:'{:U("/query_template_data")}',
type:'post',
data:'',
dataType:'json',
success:function(data){
//field 不能重复
for(var i in data){
for(var key in data[i]){
//console.log(key);
if(key == "t_id"){
data[i]["t_id2"] = data[i][key];
}
}
}
//console.log(data);
$("#my_table").datagrid("loadData",data);
},
error:function(error){
$.messager.alert('error', "error");
}
});
} function doDelete(t_id){
$.messager.confirm('删除','是否确定删除模版?',function(r){
if (r){
$.ajax({
type: 'post',
url : "{:U('/Dependency/AppGoodsTemplate/doDelete')}",
dataType:'json',
data: 'ids=' + t_id,
success: function(result){
if(result.status == 0){
$.messager.alert('成功',"删除模版成功");
$("#my_table").datagrid("clearSelections");
//清除子datagrid数据
$('#my_sub_table').datagrid('loadData', { total: 0, rows: [] });
//重新请求数据
query_data();
}else{
$.messager.alert('失败',result.message);
}
},
error: function(result) {
$.messager.alert('error');
}
});
}
});
}
===================================
easyui的数字验证框可以输入小数点向右,precision 是保留几个小数点
<input class="input easyui-numberbox" min="0.01" value="1" max="100000000" precision="2" type="text" name="price" />
EasyUI 验证框使用方法:
//***************************
missingMessage:未填写时显示的信息
validType:验证类型见下示例
invalidMessage:无效的数据类型时显示的信息
required="true" 必填项
class="easyui-validatebox" 文本验证
class="easyui-numberbox" 数字验证
===================================
如何让jquery-easyui的combobox像select那样不可编辑?
为combobox添加editable属性 设置为false
$('#goods_series').combobox({
url:"xxx/getBrandsGoodsSeries"+"?goods_brand_id="+goodsbrand,
valueField:'goods_series',
textField:'goods_series',
editable:false
});
获取值:
'goods_series':$("#goods_series").combobox("getValue"),
表单:
<input class="easyui-combobox" type="text" id="goods_series" style="border:solid 1px #95b8e7;width:120px;height:23px;" />
通过combogrid 选择级联的方式加载内容:
function goodsbrandSelect(){
var goodsbrand = -1;
var brandgrid = $('#goodsbrand').combogrid('grid').datagrid('getSelected');
if (brandgrid != null) {
goodsbrand = brandgrid.goods_brand_id;
}
$('#goods_series').combobox({
url:"xxx/getBrandsGoodsSeries"+"?goods_brand_id="+goodsbrand,
valueField:'goods_series',
textField:'goods_series',
editable:false
});
}
后台thinkphp代码:
public function getBrandsGoodsSeries(){
$goods_brand_id = I('get.goods_brand_id', -1);
$result = array();
$goods = M('goods')->field('goods_id, goods_series')
->where(array('goods_brand_id'=>$goods_brand_id))->where("goods_series is not null")
->group("goods_series")->select();
if (!empty($goods)){
$result = $goods;
}
echo json_encode($result);
}
===================================
easyui datagrid 取消选中,重新加载清除datagrid选中状态方法
$("#my_table_id").datagrid("clearSelections");
===================================================
JavaScript parseInt() 函数
parseInt("10");//返回 10
parseInt("19",10); //返回 19 (10+9),后面的10表示10进制
var ctype = {$ctype};
改成
var ctype = parseInt("{$ctype}");
解决ThinkPHP模版传值{$ctype}这种写法在Dreamweaver报错的问题
===================================
jQuery 2.x 把支持IE6, 7, 8 了,这个是主流趋势了
向下兼容的有一些插件可以使用,基本功能能够兼容,做新项目建议使用最新版的,Android手机现在主流app都只支持4.0以上版本的了
太旧版本的问题太多,兼容起来太费时间精力还影响到新版本特效的使用
XP默认是IE6 win7 默认是IE8. 不支持IE8 问题有点大吧
IE8不支持很多html5特性,根据html5来做的效果只能用插件来兼容
IE6基本上新做的网站都不考虑兼容了
根据百度统计 国内IE8 占的份额还是比较大的,IE6只有4.28%,chrome份额最大,现在一般用户都会装多个浏览器的
bootstrap应该基本上也可以兼容到的,只是效果没那么好而已
注:奇虎360浏览器份额在2010年10月至2011年3月,和2012年9月以来,两次大幅下降,是因为360浏览器去掉了原本的浏览器特征(User-Agent),而表现为IE等浏览器特征所致。
(以上百度自己的说明) 360浏览器份额在中国至少有25%
360用的就是IE和chrome的内核,国内的浏览器几乎都是这样的
====================================
更多内容以后更新
jquery easyUI相关的更多相关文章
- 最近使用JQuery Easyui 碰到的几个奇怪问题
最近项目想尝试Easyui来做做前端界面,但是刚开始就碰到几个问题,记录下来,免得忘了. 1. 点击添加或修改按钮后,弹出窗体,窗体内容参加“href”属性远程加载 问题:第一次弹出窗体正常,但是再次 ...
- JavaScript UI选型及Jquery EasyUI使用经验谈
最近由于项目需要,对js UI作了一些简单的了解和使用,有自己的一些想法,在这里留个记录. 当然,我的专注点在管理系统的范围内,所以互联网网站及其他形态的应用这里不提及,所以jQuery UI和Boo ...
- 使用Jquery+EasyUI 进行框架项目开发案例讲解之五 模块(菜单)管理源码分享
http://www.cnblogs.com/huyong/p/3454012.html 使用Jquery+EasyUI 进行框架项目开发案例讲解之五 模块(菜单)管理源码分享 在上四篇文章 ...
- 使用Jquery+EasyUI 进行框架项目开发案例讲解之四 组织机构管理源码分享
http://www.cnblogs.com/huyong/p/3404647.html 在上三篇文章 <使用Jquery+EasyUI进行框架项目开发案例讲解之一---员工管理源码分享> ...
- jQuery EasyUI datagrid实现本地分页的方法
http://www.codeweblog.com/jquery-easyui-datagrid%e5%ae%9e%e7%8e%b0%e6%9c%ac%e5%9c%b0%e5%88%86%e9%a1% ...
- jQuery EasyUI DataGrid Checkbox 数据设定与取值
纯粹做个记录,以免日后忘记该怎么设定. 这一篇将会说明两种使用 jQuery EasyUI DataGrid 的 Checkbox 设定方式,以及在既有数据下将 checked 为 true 的该笔数 ...
- 使用Jquery+EasyUI 进行框架项目开发案例讲解之三---角色管理源码分享
使用Jquery+EasyUI 进行框架项目开发案例讲解之三 角色管理源码分享 在上两篇文章 <使用Jquery+EasyUI进行框架项目开发案例讲解之一---员工管理源码分享> ...
- 使用Jquery+EasyUI 进行框架项目开发案例讲解之二---用户管理源码分享
使用Jquery+EasyUI 进行框架项目开发案例讲解之二 用户管理源码分享 在上一篇文章<使用Jquery+EasyUI进行框架项目开发案例讲解之一---员工管理源码分享>我们分享 ...
- 【推荐】使用Jquery+EasyUI进行框架项目开发案例讲解之一---员工管理源码分享
使用Jquery+EasyUI 进行框架项目开发案例讲解之一 员工管理源码分享 在开始讲解之前,我们先来看一下什么是Jquery EasyUI?jQuery EasyUI是一组基于jQuery的U ...
随机推荐
- Hive desc
Describe Database hive> DESCRIBE DATABASE test; test ??? hdfs://ns1/user/hive/warehouse/test.db w ...
- SQL Fundamentals: 数据更新及事务处理(INSERT INTO,UPDATE,DELETE,事务,锁)
SQL Fundamentals || Oracle SQL语言 在SQL语句中,数据操作语言DML由两部分组成,查询(DQL).更新操作(增加,修改,删除). 增加数据(INSERT INTO) 数 ...
- hadoop完全分布式安装部署-笔记
规划: [hadoop@db01 ~]$ cat /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4 ...
- java cocurrent ConcurrentHashMap、读写锁、Condition、线程池、Barrier、CountDownLatch、Callable、BlockingQueue
Java并发学习笔记 - yang_net - 博客频道 - CSDN.NET Java并发学习笔记 - yang_net - 博客频道 - CSDN.NET 并发小结:高 ...
- PHP使用 zip 扩展压缩文件
在公司遇到一个问题,是使用zip打包用户的上传文件,提供集体下载. -- 第一个想法就是使用exec在Linux进行打包.但是...exec方法吧,你懂得,我不太愿意使用这个函数. -- 于是上网查找 ...
- 【python-opencv】18-图像梯度+图像边界
效果图: *一阶导数与Soble算子 *二阶导数与拉普拉斯算子 定义:把图片想象成连续函数,因为边缘部分的像素值是与旁边像素明显有区别的,所以对图片局部求极值,就可以得到整幅图片的边缘信息了. 不过图 ...
- [解决]WPF 在 win7 系统无法运行:FileNotFoundException
开发环境:VS2015 + .NET 4.6.2 开发项目1:WPF + CefSharp 开发项目2:WPF 情况:两个项目编译的程序都无法在客户环境的 win7上运行,事件查看器中如下日志: Th ...
- SpringBoot @Transactional声明事务无效问题
查看系统支持的存储引擎:show engines; 查看表使用的引擎:show table status from db_name where name='table_name'; 修改表引擎方法: ...
- 【虫师】【selenium】参数化
# 1 #coding=utf-8 from selenium import webdriver import os,time source = open("F:\\test\\info.t ...
- 【JMeter】1.9上考试jmeter测试调试
1.打开抓包工具开始抓包,抓取录制脚本的整个过程.以方便后续确认关联参数的左右关联,搜索相关代码. 1.用badboy录制测试脚本并存为jmeter格式. 2.用jmeter打开已经保存的脚本 1.用 ...