记录一下

选择控件js插件

 /*
* 滚动控件,包含地址选择、时间选择、自定义单选
*/
//js_inputbox input 输入框
//js_pickviewselect 下拉单项选择
//js_pickviewdate 下拉选择时间
//js_pickviewcity 下拉选择地址
//data-options="{title:'下拉的标题',changeValue:自定义事件(左右默认取消确定),datasource:@ViewBag.数据源 后台给的 数据存到隐藏域}" $(function () { $(document).ready(function () {
$(".js_pickviewdate").pickviewdate();
$(".js_pickviewselect").pickviewselect();
$(".js_pickviewcity").pickviewcity();
$("input.js_inputbox,textarea.js_inputbox").inputbox();
}); $.fn.pickviewcity = function (options, params) {
if (typeof (options) == "string") {
$.pickview.methods[options](this, params);
}
return this.each(function () {
var state = $.data(this, 'pickviewcity');
if (state) {
$.extend(state, options);
} else {
var eleSetting = $(this).attr("data-options");
if (!eleSetting) {
eleSetting = { text: "请选择地址" };
} else {
eleSetting = eval("(" + eleSetting + ")");
}
state = $.extend({}, $.pickviewcity.defaults.config, eleSetting, options);
state.province = { code: $(this).find("input.pv_province").val() };
state.city = { code: $(this).find("input.pv_city").val() };
state.area = { code: $(this).find("input.pv_area").val() };
$.data(this, 'pickviewcity', state); $(this).on("click", function () {
$.pickviewcity.setLastPickElement(this);
var initData = [];
if (state.province) {
initData.push(state.province.code);
}
if (state.city) {
initData.push(state.city.code);
}
if (state.area) {
initData.push(state.area.code);
}
if (initData.length <= ) {
initData = ["", "", ""];
}
$.zProtocol({
type: "Control.PickerViewCity",
path: "/Create/BodyBottom",
data: { text: state.text, textColor: state.textColor, fontSize: state.fontSize, menus: state.menus, initialData: initData.join(",") }
});
});
}
});
} $.fn.pickviewdate = function (options, params) {
if (typeof (options) == "string") {
$.pickview.methods[options](this, params);
}
return this.each(function () {
var state = $.data(this, 'pickviewdate');
if (state) {
$.extend(state, options);
} else {
var eleSetting = $(this).attr("data-options");
if (!eleSetting) {
return;
}
eleSetting = eval("(" + eleSetting + ")");
state = $.extend({}, $.pickviewdate.defaults.config, eleSetting, options);
state.value = $(this).find("input:eq(1)").val();
$.data(this, 'pickviewdate', state);
if (!state.date) {
state.value = $(this).find("input:eq(1)").val();
//未设置或为9999 0001,则设置为当前时间,防止App不响应 by 雷 2017-3-7
if (!state.value || state.value.indexOf("") == || state.value.indexOf("") == ) {
var now = new Date();
state.value = now.getFullYear() + "-" + (now.getMonth() + ) + "-" + now.getDate();
}
state.value = state.value.replace(/\//g, '-');
var reg = new RegExp("([0-9]+-[0-9]+-[0-9]+)", "gmi");
var resultArray = reg.exec(state.value);
if (resultArray != null) {
state.value = resultArray[]; //截取日期 2017-3-8 0:00:00 截为2017-3-8
}
} $(this).on("click", function () {
$.pickviewdate.setLastPickElement(this);
$.zProtocol({
type: "Control.PickerViewDate",
path: "/Create/BodyBottom",
data: { text: state.title, textColor: state.textColor, fontSize: state.fontSize, menus: state.menus, initialData: state.value }
});
});
}
});
} $.fn.pickviewselect = function (options, params) {
if (typeof (options) == "string") {
$.pickview.methods[options](this, params);
}
return this.each(function () {
var state = $.data(this, 'pickviewselect');
if (state) {
$.extend(state, options);
} else {
var eleSetting = $(this).attr("data-options");
if (!eleSetting) {
return;
}
eleSetting = eval("(" + eleSetting + ")");
var saveState = $.extend({}, $.pickviewselect.defaults.config, eleSetting, options);
$.data(this, 'pickviewselect', saveState);
var initValue = $(this).find("input:eq(1)").val(); var initIndex = ;
if (initValue) {
for (var dIndex in saveState.datasource) {
if (initValue == saveState.datasource[dIndex].value) {
$(this).find("input:eq(0)").val(saveState.datasource[dIndex].text);
initIndex = dIndex;
break;
}
}
}
saveState.selectIndex = initIndex; if (saveState.value) {
for (var dIndex in saveState.datasource) {
if (saveState.value == saveState.datasource[dIndex].value) {
$(this).find("input:eq(0)").val(saveState.datasource[dIndex].text);
break;
}
}
} $(this).on("click", function () {
$.pickviewselect.setLastPickElement(this);
var config = $.data(this, 'pickviewselect');
$.zProtocol({
type: "Control.PickerViewSelect",
path: "/Create/BodyBottom",
data: { text: config.title, textColor: config.textColor, fontSize: config.fontSize, datasource: config.datasource, menus: config.menus, initialData: config.selectIndex }
});
});
}
}); function initPickSelect(target, config) { }
} $.extend({
pickviewcity: {
defaults: {
lastPickElement: undefined,
config: {
title: "请选择",
textColor: "",
fontSize: ,
menus: [
{
text: "确定",
textColor: "",
backColor: "FFFFFF",
fontSize: "",
jsCallBack: "$.pickviewcity.changeValue('#pickview#')"
},
{
text: "取消",
textColor: "",
backColor: "FFFFFF",
fontSize: ""
}
]
}
},
getLastPickElement: function () {
return this.defaults.lastPickElement;
},
setLastPickElement: function (element) {
this.defaults.lastPickElement = element;
},
changeValue: function (addressObj) {
addressObj = eval("(" + addressObj + ")");
var lastPickElement = this.getLastPickElement();
var state = $.data(lastPickElement, "pickviewcity");
state.province = { name: addressObj.provinceName, code: addressObj.provinceCode };
state.city = { name: addressObj.cityName, code: addressObj.cityCode };
state.area = { name: addressObj.districtName, code: addressObj.districtCode };
$(lastPickElement).find("input:eq(0)").val(state.province.name + state.city.name + state.area.name);
$(lastPickElement).find("input.pv_province").val(state.province.code);
$(lastPickElement).find("input.pv_city").val(state.city.code);
$(lastPickElement).find("input.pv_area").val(state.area.code);
}
},
pickviewdate: {
defaults: {
lastPickElement: undefined,
config: {
title: "请选择",
textColor: "",
fontSize: ,
isShowWeek: false,
menus: [
{
text: "确定",
textColor: "",
backColor: "FFFFFF",
fontSize: "",
jsCallBack: "$.pickviewdate.changeValue('#pickview#')"
},
{
text: "取消",
textColor: "",
backColor: "FFFFFF",
fontSize: ""
}
]
}
},
getLastPickElement: function () {
return this.defaults.lastPickElement;
},
setLastPickElement: function (element) {
this.defaults.lastPickElement = element;
},
changeValue: function (dateObj) {
//alert(JSON.stringify(dateObj));
dateObj = eval("(" + dateObj + ")");
var lastPickElement = this.getLastPickElement();
var state = $.data(lastPickElement, "pickviewdate");
state.date = dateObj;
state.value = state.date.year + "-" + state.date.month + "-" + state.date.day;
$(lastPickElement).find("input:eq(1)").val(state.value);
if (state.isShowWeek) {
var weekDay = ['日', '一', '二', '三', '四', '五', '六'];
$(lastPickElement).find("input:eq(0)").val(state.value + ' 星期' + weekDay[dateObj.weekday]);
}
else {
$(lastPickElement).find("input:eq(0)").val(state.value);
} }
},
pickviewselect: {
defaults: {
lastPickElement: undefined,
config: {
title: "请选择",
textColor: "",
fontSize: ,
menus: [
{
text: "确定",
textColor: "",
backColor: "FFFFFF",
fontSize: "",
jsCallBack: "$.pickviewselect.changeValue('#pickview#')"
},
{
text: "取消",
textColor: "",
backColor: "FFFFFF",
fontSize: ""
}
]
}
},
getLastPickElement: function () {
return this.defaults.lastPickElement;
},
setLastPickElement: function (element) {
this.defaults.lastPickElement = element;
},
changeValue: function (selectObj) {
if (typeof (selectObj) == "string") {
selectObj = eval("(" + selectObj + ")");
}
var lastPickElement = this.getLastPickElement();
var oldValue = $(lastPickElement).find("input:eq(1)").val();
$(lastPickElement).find("input:eq(0)").val(selectObj.text);
$(lastPickElement).find("input:eq(1)").val(selectObj.value);
var state = $.data(lastPickElement, "pickviewselect");
var selectIndex = ;
for (var i in state.datasource) {
if (state.datasource[i].value == selectObj.value) {
selectIndex = i;
break;
}
}
state.selectIndex = selectIndex;
//如果定义有值改变事件,则调用值改变的回调
if (oldValue != selectObj.value && state.changeValue) {
state.changeValue(selectObj.value, selectObj.text, oldValue);
}
}
}
}); $.fn.inputbox = function (options, params) {
if (typeof (options) == "string") {
$.inputbox.methods[options](this, params);
}
return this.each(function () {
var state = $.data(this, 'inputbox');
if (state) {
$.extend(state, options);
} else {
$(this).on("click", function () {
var inputType = $(this).prop("type");
if (!inputType || inputType == "text") {
inputType = "defaults";
} else {
if (inputType == "tel") {
inputType = "phone";
}
}
var placeholder = $(this).prop("placeholder");
if (!placeholder) {
placeholder = ""
} var setting = {
keyboardtype: inputType,
placeholder: placeholder,
text: $(this).val(),
}; var eleSetting = $(this).attr("data-options");
if (eleSetting) {
eleSetting = eval("(" + eleSetting + ")");
} setting = $.extend({}, $.inputbox.defaults.config, setting, eleSetting);
if (setting.regex) {
setting.regex = $.toBase64Str(setting.regex);
}
var eleProp = $(this).attr("data-options")
$.inputbox.setLastInputElement(this);
$.zProtocol({
type: "Control.InputBox",
path: "/Create/BodyBottom",
data: setting
});
});
}
});
};
$.extend({
inputbox: {
defaults: {
lastInputEle: undefined,
config: {
text: "",
placeholder: "",
buttonBackGroundColor: "",
buttonFontSize: "",
buttonText: "确定",
keyboardtype: "default",
jscallback: "$.inputbox.changeValue('#inputbox#')"
},
},
getLastInputElement: function () {
return this.defaults.lastInputEle;
},
setLastInputElement: function (element) {
this.defaults.lastInputEle = element;
},
changeValue: function (selectObj) {
var lastInputElement = this.getLastInputElement();
$(lastInputElement).val(selectObj);
}
}
});
});

给input加上相应的class(

js_inputbox           input输入框
js_pickviewselect   下拉单项选择
js_pickviewdate    下拉选择时间
js_pickviewcity      下拉选择地址

//input输入框:          
<div class="js_inputbox">汉字:<input name="hanz" type="text" data-tipName="汉字" data-valid='{required:true,CHS:true,maxLength:4}'/></div> //js_pickviewselect 下拉单项选择: data-options="{title:'下拉的标题',changeValue:自定义事件(左右默认取消确定),datasource:@ViewBag.数据源 后台给的 用来将数据存到隐藏域}"
<div class="js_pickviewselect">选择:<input name="xz" type="text" data-tipName="选择" data-valid='{required:true,CHS:true,maxLength:4}'/></div>
<input type="hidden" name="dsd" data-valid='{required:true,CHS:true} data-options="{title:'装修',changeValue:自定义事件(左右默认取消,确定),datasource:@ViewBag.后台给的数据源 }' /> // js_pickviewdate 下拉选择时间:
<div class="js_pickviewdate ">选择:<input name="xzsj" type="text" data-tipName="选择时间" data-valid='{required:true,CHS:true,maxLength:4}'/></div> //js_pickviewcity 下拉选择地址 {pv_province省 pv_city市 pv_area区 放在隐藏域的class }
<p class="f_pr text js_pickviewcity">
<input type="text" placeholder="选择省份地区" name="LocationArea" value="@(string.Format("{0}{1}{2}",Model.ProvinceName,Model.CityName,Model.AreaName))" readonly="readonly"/>
@Html.HiddenFor(model => model.ProvinceCode, new { @class = "pv_province", @data_tipName = "省份地区", @data_valid = "{selectRequired:true}" })
@Html.HiddenFor(model => model.CityCode, new { @class = "pv_city", @data_tipName = "省份地区", @data_valid = "{selectRequired:true}" })
@Html.HiddenFor(model => model.AreaCode, new { @class = "pv_area" , @data_tipName = "省份地区", @data_valid = "{selectRequired:true}" })
</p>

选择控件js插件和使用方法的更多相关文章

  1. [Ext JS 4] 实战之 带week(星期)的日期选择控件(三)

    前言 在 [Ext JS 4] 实战之 带week(星期)的日期选择控件(二) 的最后,有提到一个解决方案. 不过这方案有一个条件  ==> “2. 每年的周数从(1-52), 如果超过52 周 ...

  2. 【高德地图API】从零开始学高德JS API(二)地图控件与插件——测距、圆形编辑器、鼠标工具、地图类型切换、鹰眼鱼骨

    原文:[高德地图API]从零开始学高德JS API(二)地图控件与插件——测距.圆形编辑器.鼠标工具.地图类型切换.鹰眼鱼骨 摘要:无论是控件还是插件,都是在一级API接口的基础上,进行二次开发,封装 ...

  3. js组件开发-移动端地区选择控件mobile-select-area

    移动端地区选择控件mobile-select-area 由于之前的[js开源组件开发]js手机联动选择地区仿ios 开源git 很受欢迎,于是我又对其进行了一些优化,包括可选的范围变大了,添加了默认空 ...

  4. js进阶 9-10 html控件如何实现点击自动选择控件内容

    js进阶 9-10  html控件如何实现点击自动选择控件内容 一.总结 一句话总结: 1.在click事件中,如果focus,那就select 2.blur 1.html中控件添加两种方式? 在表单 ...

  5. js 跨域的问题 (同一个主域名不同的二级域名下的跨域问题) 解决 WdatePicker.js my97日期选择控件

    例如域名是  a.xx.com  和 b.xx.com    如果一个页面中引入多个iframe,要想能够操作所有iframe,必须都得设置相同domain. 如果iframe的时候  a包含b  为 ...

  6. ASP.NET(c#) 日期选择控件的另一种实现方法

    这篇文章是在一个英文网站发现的,完全使用ASP.NET实现了日期选择的基本功能,没有使用js,原文链接http://geekswithblogs.net/plundberg/archive/2009/ ...

  7. 【高德地图API】从零開始学高德JS API(二)地图控件与插件——測距、圆形编辑器、鼠标工具、地图类型切换、鹰眼鱼骨

    不管是控件还是插件,都是在一级API接口的基础上,进行二次开发,封装的一系列更加便于开发人员使用.降低开发人员工作量的二级API接口.除了官方通用的鱼骨.鹰眼控件,还有大量官方开发的地图插件,相似谷歌 ...

  8. asp.net mvc中使用jquery H5省市县三级地区选择控件

    地区选择是项目开发中常用的操作,本文讲的控件是在手机端使用的选择控件,不仅可以用于实现地区选择,只要是3个级别的选择都可以实现,比如专业选择.行业选择.职位选择等.效果如下图所示: 附:本实例asp. ...

  9. jquery mobiscroll移动端日期选择控件(无乱码)

    jquery mobiscroll移动端日期选择控件(无乱码) <pre><!DOCTYPE html><html lang="en">< ...

随机推荐

  1. configured to save RDB snapshots, but is currently not able to persist o...

    Redis问题 MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on d ...

  2. poj3468区间加减查找——树状数组区间修改查询

    题目:http://poj.org/problem?id=3468 增加一个更改量数组,施以差值用法则区间修改变为单位置修改: 利用公式可通过树状数组维护两个数组:f与g而直接求出区间和. 代码如下: ...

  3. Java类加载原理解析(转)

    1 基本信息 每个开发人员对java.lang.ClassNotFoundExcetpion这个异常肯定都不陌生,这背后就涉及到了java技术体系中的类加载.Java的类加载机制是技术体系中比较核心的 ...

  4. static_cast” : 无法从“void (__thiscall CMainFrame::* )(NMTOOLBARA *,LRESULT *)”转换为“void (__thiscall CCmdTarget::* )(NMHDR *,LRESULT

    static_cast” : 无法从“void (__thiscall CMainFrame::* )(NMTOOLBARA *,LRESULT *)”转换为“void (__thiscall CCm ...

  5. java枚举类型的优势在哪里?--一个实例

    最近在做一个项目,其中涉及到一组操作,命名为: 1. "add"; 2. "logicDel" 3. "physicDel" 4. &quo ...

  6. java——类的封装

    public void setName(String str) { name=str; } public void setAge(int a) //set方法需要在括号中定义数据类型 { if(a&g ...

  7. eclipse(java)&nbsp;使用SQL&nbsp;…

    java连接sqlserver2005数据库   首先得下载驱动程序到微软网站下载Microsoft JDBC Driver 4.0 for SQL Server 下载地址 :http://msdn. ...

  8. USB相关资料

    http://www.usb.org/developers/defined_class/#BaseClass00h http://blog.csdn.net/lizzywu/article/detai ...

  9. lung 分割论文

    <4D Lung Tumor Segmentation via Shape Prior and Motion Cues > Abstract— Lung tumor segmentatio ...

  10. cassandra的命令

    cassandra的命令: connect <hostname>/<port> (<username> '<password>')?;    Conne ...