myForm.js
根据控件名,重现一些特殊的表单项,生成html
var can_submit = true;
function myForm($form_id, $id_value, province, city, district){
var theForm = $('#'+$form_id);
province = province || 6;
//第一步,重现一些特殊的表单项(地区控件、相册控件)
$(theForm).find('div').each(function(){
var _this = $(this);
//地区列表控件
if(_this.attr('data-role') == 'position'){
Create_Position(_this, {'province':province, 'city':city, 'district':district});
}
//相册上传控件
if(_this.attr('data-role') == 'album'){
Create_Album(_this, $id_value, 60, 54);
}
});
$(theForm).find('td').each(function(){
$(this).append(" <span class='tip'></span>");
});
//第二步,对特殊表单进行输入限制(必填、电话、手机、邮箱、QQ、时间)
$(theForm).find('textarea').each(function(){
var _this = $(this);
if(_this.attr('data-required') == 'true'){
_this.blur(function(){
check_required($(this));
});
}
});
$(theForm).find('input').each(function(){
var _this = $(this);
var input_type = _this.get(0).type;
if(_this.attr('data-role') == 'tel'){
_this.blur(function(){
check_tel($(this));
});
}
if(_this.attr('data-role') == 'phone'){
_this.blur(function(){
check_phone($(this));
});
}
if(_this.attr('data-role') == 'email'){
_this.blur(function(){
check_email($(this));
});
}
if(_this.attr('data-role') == 'qq'){
_this.blur(function(){
check_qq($(this));
});
}
if(_this.attr('data-role') == 'timer'){
_this.attr('readonly','readonly');
_this.attr('onclick','new WdatePicker();');
}
if(_this.attr('data-required') == 'true'){
_this.blur(function(){
check_required($(this));
});
}
});
//提交表单前,再次验证表单项
theForm.submit(function(){
can_submit = true;
$(theForm).find('textarea').blur();
$(theForm).find('input').blur();
//check_album();
//简介
if($('#short')) $('#short').html($("div[data-role='short']").html());
return can_submit;
});
}
function check_required(_this){
var tip = _this.next('.tip');
var val = _this.val() || _this.html();
if(val == ''){
tip.html('此项为必填项!');
can_submit = false;
}else{
tip.html('');
if(_this.attr('data-role') == 'tel') return check_tel(_this);
if(_this.attr('data-role') == 'phone') return check_phone(_this);
if(_this.attr('data-role') == 'email') return check_email(_this);
if(_this.attr('data-role') == 'qq') return check_qq(_this);
}
}
function check_tel(_this){
var tip = _this.next('.tip');
var val = _this.val();
if(!is_tel(val)){
tip.html('电话格式错误!');
can_submit = false;
}else{
tip.html('');
}
}
function check_phone(_this){
var tip = _this.next('.tip');
var val = _this.val();
if(!is_phone(val)){
tip.html('手机格式错误!');
can_submit = false;
}else{
tip.html('');
}
}
function check_email(_this){
var tip = _this.next('.tip');
var val = _this.val();
if(!is_email(val)){
tip.html('邮箱格式错误!');
can_submit = false;
}else{
tip.html('');
}
}
function check_qq(){
var tip = $(this).next('.tip');
var val = $(this).val();
if(!is_qq(val)){
tip.html('QQ格式错误!');
can_submit = false;
}else{
tip.html('');
}
}
function check_album(){
if($('#show').length > 0){
var tip = $("div[data-role='album']").next('.tip');
if($('#show').html() == ''){
tip.html('请上传相册!');
can_submit = false;
}else{
tip.html('');
}
}
}
myForm.js的更多相关文章
- 很强大的HTML+CSS+JS面试题(附带答案)
一.单项选择(165题) 1.HTML是什么意思? A)高级文本语言 B)超文本标记语言 C)扩展标记语言 D)图形化标记语言 2.浏览器针对于HTML文档起到了什么作用? A)浏览器用于创建HTML ...
- 表单验证插件之jquery.validate.js
提到表单验证的插件,第一个想到的就是jquery.validate.js,所以小生想在这里稍微详细地说一下这款插件的具体使用方法,便于理解,我直接附上整段demo的代码(没怎么调样式,主要是看js): ...
- CI模板加载css和js
1.需求 ci无法加载css和js文件. 2.解决 删除..htaccess文件. 在config目录下配置base_url,并传给页面 $base_url = $this->config-&g ...
- JS技巧
2016-08-09 200多个js技巧代码(Down) word下载 200多个js技巧代码 目录 1.文本框焦点问题... 6 2.网页按钮的特殊颜色... 6 3.鼠标移入移出时颜色变化... ...
- js正则表达式语法
1. 正则表达式规则 1.1 普通字符 字母.数字.汉字.下划线.以及后边章节中没有特殊定义的标点符号,都是"普通字符".表达式中的普通字符,在匹配一个字符串的时候,匹配与之相同的 ...
- 学习zepto.js(对象方法)[5]
继续说. clone: 该方法不接收任何参数,会返回对象中的所有元素集合,但不会对象绑定的事件. var $temp = $("div").clone(); //并不接收任何参数. ...
- JS复习--更新结束
js复习-01---03 一 JS简介 1,文档对象模型 2,浏览器对象模型 二 在HTML中使用JS 1,在html中使用<script></script>标签 2,引入外部 ...
- jquery.validate.js插件使用
jQuery验证控件jquery.validate.js使用说明+中文API 官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-valid ...
- JS问题汇总
1.Q:$(this)在js中失效,无法获取当前元素 A:function()在被调用时this是指向window的,如果要想指向被点击的元素,一般是将this作为参数传入,例如: <div ...
随机推荐
- 阿里云服务器迁移更改IP,导致网站挂掉
从昨日下午三点阿里云主机迁移变更IP导致网站挂点,到刚刚网站.手机客户端均恢复访问,这个过程持续了24个钟头.最后还是我自己解决了问题. 哎,真是揪心. 其间和阿里云工程师反复沟通,昨日沟通到今日凌晨 ...
- LeetCode-2: Add Two Numbers
[Problem:2-Add Two Numbers] You are given two non-empty linked lists representing two non-negative i ...
- javascript获取地址栏参数
http://gzycm520.blog.51cto.com/175220/71030方法一: <script type="text/javascript"> < ...
- Entity Framework插入中文数据到MySQL乱码问题
1.MYSQL: 保证所有的的列都是UTF8格式. 2.在连接MySQL的连接字符串中,加入配置文件信息:Character Set=utf8
- spring4.3+mybatis3.4+freemark+log4j2+fastjson整合
2017-7-1 更新 spring 版本 4.3.9 更新mybatis 为3.4.3 0.先写下文件结构防止配置放错地方 1.首先发下maven配置 <properties> < ...
- POJ 3279 Fliptile (二进制+搜索)
[题目链接]click here~~ [题目大意]: 农夫约翰知道聪明的牛产奶多. 于是为了提高牛的智商他准备了例如以下游戏. 有一个M×N 的格子,每一个格子能够翻转正反面,它们一面是黑色,还有一面 ...
- JavaScript身份证正则表达式,querySelector通过name获取元素,php正则表达式
var preg_sfz1 = /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3 ...
- SpringCloud-服务注册与发现
这里我们会用到Spring Cloud Netflix,该项目是Spring Cloud的子项目之一,主要内容是对Netflix公司一系列开源产品的包装,它为Spring Boot应用提供了自配置的N ...
- docker1.12安装配置及使用笔记
官方安装手册地址:https://docs.docker.com/engine/installation/linux/ubuntulinux/ 使用的操作系统是是ubuntu14.04,按照官方的推荐 ...
- Atititjs javascript异常处理机制与java异常的转换.js exception process
Atititjs javascript异常处理机制与java异常的转换.js exception process 1. javascript异常处理机制 Throw str Not throw err ...