博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
给easyui-input元素添加js原生方法
阅读量:4071 次
发布时间:2019-05-25

本文共 1110 字,大约阅读时间需要 3 分钟。

前言

当前项目中一直使用easyui框架,现在产品要求将某个easyui-textbox中只能输入数字,又因为easyui-numberbox的前缀0的个数不能做成无限个,所以只能在easyui-textbox的基础上进行修改了。
问题解决后,考虑到刚接触easyui时遇到的一些问题和这个相似,特地总结出来,供大家参考。

原因

easyui的input的元素是在html原生的input元素上进行的一次封装,所以html原生的一些方法在easyui上是不支持的。
例如:想在easyui-textbox的input上使用onkeydown等方法
或是:想给textbox增加一个placehoder
以上这两种写法是无效的。
我们通过浏览器的检查元素功能可以发现,添加placehoder的代码会被解析为如下代码:
可以发现直接加的属性加到了easyui 自己的input上而不是我们要的html文本的input上

解决方案

js文件编写函数:
//easyui对象添加属性function EasyUiAttrProperty(JqueryObj, PropertyName,PropertyValue){    var span = JqueryObj.siblings("span")[0];    var targetInput = $(span).find("input:first");    if (targetInput) {        $(targetInput).attr(PropertyName, PropertyValue);    }}
上述代码就是找到html原生的input属性,在进行属性的添加。
调用方式:文本框只允许输入数字
EasyUiAttrProperty($('#FloorCode'), "onkeyup", "return CheckIsNumber(this);");    EasyUiAttrProperty($('#FloorCode'), "onafterpaste", "this.value=this.value.replace(/[^1-9]/g,'')");
function CheckIsNumber(obj){    var c = $(obj);    if (/^[0-9]*$/.test(c.val())==false) {//替换非数字字符        var temp_amount = c.val().replace(/[^0-9]/g, '');        $(obj).val(temp_amount);    }}
你可能感兴趣的文章
VIM滚屏操作
查看>>
EMC 2014存储布局及十大新技术要点
查看>>
linux内核内存管理(zone_dma zone_normal zone_highmem)
查看>>
将file文件内容转成字符串
查看>>
循环队列---数据结构和算法
查看>>
优先级队列-数据结构和算法
查看>>
链接点--数据结构和算法
查看>>
servlet中请求转发(forword)与重定向(sendredirect)的区别
查看>>
Spring4的IoC和DI的区别
查看>>
springcloud 的eureka服务注册demo
查看>>
eureka-client.properties文件配置
查看>>
MODULE_DEVICE_TABLE的理解
查看>>
platform_device与platform_driver
查看>>
platform_driver平台驱动注册和注销过程(下)
查看>>
.net强制退出主窗口的方法——Application.Exit()方法和Environment.Exit(0)方法
查看>>
c# 如何调用win8自带的屏幕键盘(非osk.exe)
查看>>
build/envsetup.sh 简介
查看>>
C++后继有人——D语言
查看>>
Android framework中修改或者添加资源无变化或编译不通过问题详解
查看>>
linux怎么切换到root里面?
查看>>