今天又踩了一个坑,大致是没有给input设id,使用类选择器绑定easyui控件,然后使用name设值,现在值设进去后界面没有显示。

做的界面部分截图如图:

点击下面两个橙色的按钮,通过调用下面的方法动态添加html来添加控件,没点击一次就会添加一组控件到界面:

        revert(value){
let rStr = `<div class="rowBox bigBox">
<div class="col">
<span class="ui-color-red">*</span>
<span class="bigFont">${this.formatterPerType (value)}赠送:</span>
<input name="ticketDefineNo${this.reTicketIndex}" class="easyui-ticketForCheck ticketForCheck" data-options="width:142,height:28,readOnly:true">
<input name="ruleTicketDefineNo${this.reTicketIndex}" type="hidden"/>
<input name="ticketName${this.reTicketIndex}" type="hidden"/>
<span>面额</span><input name="preferentialValue${this.reTicketIndex}" type="text" disabled="disabled"/><span>元</span>
<span class="ui-color-red">*</span>
<input name="preferentialQty${this.reTicketIndex}" class="requiredValidateIntQty" type="text" maxlength=4 />
<span>张</span>
</div>
<a class="easyui-linkbutton removeEnjoy">删除此项-</a>
</div>`;
return rStr;
}

上面的this.reTicketIndex每加一组控件会递增1,就是说各个input的name不会重复。

添加完控件后,会再次调用下面这段js通过类选择器.requiredValidateIntQty给name="preferantialQty${this.reTicketIndex}"绑定easyui-numberbox控件:

$.each($(".requiredValidateIntQty"),function(i,e){
if(!$(e).hasClass("numberbox-f")){
$(e).numberbox({
required: true,
min:1,
max:9999,
precision:0,
width:139,
height:26,
validType: ['intOrFloatGtZero']
});
}
})

界面加载数据时,通过

$(`input[name=preferentialQty]`,$("#reTicketForm")).val(qty);设值,发现界面没显示值,但是通过调用$(`input[name=preferentialQty]`,$("#reTicketForm")).val();又能获取到设进去的值。想着既然绑定了easyui-numberbox,应该使用numberbox的setValue方法设值,于是使用$(`input[name=preferentialQty]`,$("#reTicketForm")).numberbox("setValue",qty);设值,
于是在console敲如这行代码,但是报错了,大意是$(`input[name=preferentialQty]`,$("#reTicketForm"))这个input没有绑定numberbox控件。
检查html源码,如图:

绑定easyui-numberbox插件的inpu变成了图中红色框框内的样子,界面显示的是红框中第一个input,而通过$(`input[name=preferentialQty]`,$("#reTicketForm"))选择器获取到的是最底下那个input,这个input的type是hidden,而且这个input的确没有绑定easyui-numberbox控件,难怪调用$(`input[name=preferentialQty]`,$("#reTicketForm")).numberbox("setValue",qty);设值会报错。

想着我们一帮都是通过元素的id获取一个标签,然后给这个标签绑定控件,那如果给input设值一个id会怎样呢,

于是动态添加的html里面给input加了一个id属性,如图:

然后在浏览器中查看这个时候绑定easyui-numberbox控件之后的html,如图:

发现给最上面的input设置了id="preferentialQty1",而最底下的input依旧是name="preferentialQty1"。

这个时候,再调用

$(`#preferentialQty1`,$("#reTicketForm")).numberbox("setValue",qty);就没问题了。

总结一下:就因为没设id,折腾了好久啊,~~~~(>_<)~~~~,以后还是要养成设置id的习惯。

easyui input未设id导致的问题的更多相关文章

  1. dubbo接口方法重载且入参未显式指定序列化id导致ClassCastException分析

    问题描述&模拟 线上登录接口,通过监控查看,有类型转换异常,具体报错如下图 此报错信息是dubbo consumer端显示,且登录大部分是正常,有少量部分会报类型转换异常,同事通过更换方法名+ ...

  2. Error-ASP.NET:由于未能找到 id 为“FileUpload1$gvFiles$ctl02$lnkBtnRemoveFile”的控件或在回发后将同一 ID 分配给另一个控件,导致发生错误。如果未分配 ID,请显式设置引发回发事件的控件的 ID 属性以避免此错误。

    ylbtech-Error-ASP.NET:由于未能找到 id 为“FileUpload1$gvFiles$ctl02$lnkBtnRemoveFile”的控件或在回发后将同一 ID 分配给另一个控件 ...

  3. 对比<input type="text" id="">和<asp:TextBox runat="server" ID="">

    首先这两个都是对应文本输入框形式: <input type="text"class="form-control"id="txt_add_pro_ ...

  4. 关于点击input框唤醒键盘导致input被遮盖的问题

    关于点击input框唤醒键盘导致input被遮盖的问题 这个问题相信大家在实际开发过程当中都有遇见,我自己也遇见过很多次.之前在百度上看见大多数的方法利用的都是键盘唤醒了之后,页面的实际高度会发生变化 ...

  5. <input type="file" id="camera" multiple="multiple" capture="camera" accept="image/*"> 上传图片,手机调用相册和摄像头

    <input type="file" id="camera" multiple="multiple" capture="ca ...

  6. 查询最小未使用ID的SQL查询

    --每个都加一,以此来找出最小的未用ID SELECT Min(T1.ID)+1 FROM dbo.TestTable T1 -- 不用查询已经存在的ID WHERE (T1.ID+1) NOT IN ...

  7. <input type="file" id="fileID">文本框里的值清空方法

    一般情况下,不允许通过脚本来对文件上传框赋值. 下面是一个变通的方法.就是创建一个新的input type="file" 把原来的替换掉. <!DOCTYPE html PU ...

  8. 记录一次bug解决过程:else未补全导致数据泄露和代码优化

    一.总结 快捷键ctrl + alt + 四个方向键 --> 倒置屏幕 未补全else逻辑,倒置查询数据泄露 空指针是最容易犯的错误,数据的空指针,可以普遍采用三目运算符来解决 SVN冲突解决关 ...

  9. 误设PATH导致命令失效的处理

    今天配置Linux下的Java环境时,把PATH设为了export PATH=${JAVA_HOME}/bin,然后执行了source ~/.bash_profile命令,导致了几乎所有的Linux命 ...

随机推荐

  1. Linq快速入门——扩展方法

    Linq为我们提供了许多扩展方法,方便我们对数据源进行操作(Where,Select...).即使你不了解算法,也能使用Linq当回牛人.扩展方法本质并不是什么高深的技术,说白了就是一个Static静 ...

  2. jsoncpp解析拼装数组

    Cocos2d-x添加jsoncpp应该资料都有了,今天来讲讲数组的解析和拼装- int main() { 数组创建与分析: 例子一: string strValue = "{\" ...

  3. 过度使用DBLINK做系统集成会带来的问题

    过度使用DBLINK做系统集成会带来很多问题,问题主要由以下几点: 1. 大量消耗数据库资源: 本地系统每通过DBLINK链接远端系统一次,都会生成一个本地session,如本地session不退出或 ...

  4. tomcat 性能优化(内存优化 线程优化)

    转自:http://blog.sina.com.cn/s/blog_4b5bc01101014s81.html tomcat 性能优化 linux修改TOMCAT_HOME/bin/catalina. ...

  5. vcenter修改用户密码的方法

    https://192.168.x.x:9443登录,必须用administrator@vsphere.local登录,不能用root用户登录. 主页-系统设置- Single Sing-On-用户和 ...

  6. 半联结&反联结!

    半联结是在两个数据集(表)之间的联结,其中第一个数据集中的数据行在决定是否返回时会根据在另一个数据集中出现或不出现至少一个相匹配的数据行来确定.“不出先”匹配行——这是半联结的一种特殊形式,称为反联结 ...

  7. python3 string

    字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串. 创建字符串很简单,只要为变量分配一个值即可.例如: var1 = 'Hello World!' var2 ...

  8. Python生态圈

    WEB开发——最火的Python web框架Django, 支持异步高并发的Tornado框架,短小精悍的flask,bottle, Django官方的标语把Django定义为the framewor ...

  9. List集合的clear方法

    一 . list.clear()底层源码实现 在使用list 结合的时候习惯了 list=null :在创建这样的方式,但是发现使用list的clear 方法很不错,尤其是有大量循环的时候 1.lis ...

  10. POI 生成带联动下拉框的excel表格

    参考:https://www.cnblogs.com/cjbbk/p/7527276.html 解决POI3.17 与其它版本的不同的坑:https://blog.csdn.net/Weirdo_zh ...