今天又踩了一个坑,大致是没有给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. Linux内核深入研究之进程的线性地址空间-传统版

    引言: 了解Linux环境下,进程的地址空间划分,对于我们理解Linux应用程序有很大的帮助,否则会被New与Malloc之类的指针操作弄的晕头转向,本文基于Linux内核讲述了Linux/Unix线 ...

  2. 加快QT工程编译速度

    转载:学海方舟 利用Qt Creator编译工程大家都觉得慢,特别是整个工程重新编译时,那问题来了怎么加快编译速度呢 ,其实方法很简单,利用我们的强大的多核CPU来实现多核编译: 在编译参数中加入“- ...

  3. bzoj2262: 平行宇宙与虫洞

    Description 量子力学指出,宇宙并非只有一种形态. 根据量子理论,一件事件发生之后可以产生不同的后果,而所有可能的后果都会形成自己的宇宙. 我们可以把一个宇宙看成一个时间轴,虫洞可以看成不同 ...

  4. [转]MSSQL 判断临时表是否存在

    原文来自:http://www.cnblogs.com/szfhquan/p/4229150.html 方法一: 1 if exists (select * from tempdb.dbo.sysob ...

  5. java接口定义和作用

    接口语法 1.接口是一种引用类型,可以等同看作类.修饰符 interface 接口名 2.接口中只能出现常量和抽象方法 3.接口其实是一个特殊的抽象类,特殊在接口是完全抽象的 4.接口中没有构造方法, ...

  6. [UE4]有限状态机、动画状态机、纯函数

    有限状态机 FSM:Finite State Machine,表示有限个状态以及在这些状态之间转移和动作的数学模型 纯函数: 纯函数: 先后调用顺序不重要,没有修改任何数值,只是获取数值或者临时计算一 ...

  7. Delphi Webbrowser使用方法详解(一)

    1.webbroser介绍 该组件是一个浏览器组件,可以显示一个指定地址的网页.设置网页打开时的主页以及对网页进行相关的操作,同时也可以对HTML文件进行剪切.复制.粘贴.删除等操作.该 组件在Int ...

  8. png,jpg,gif这些图片格式解释一下,分别什么时候用,webp呢

    gif图形交换格式,索引颜色格式,颜色少的情况下,产生的文件极小,支持背景透明,动画,图形渐进,无损压缩(适合线条,图标等),缺点只有256种颜色 jpg支持上百万种颜色,有损压缩,压缩比可达180: ...

  9. IntelliJ IDEA创建maven web项目(IDEA新手适用)

      步骤一:首先先创建一个project,在这里就是创建一个maven的工作空间 步骤二:按照下面的步骤操作就可以了,最后next 首先,选择左边的maven 然后在右边Creater from ar ...

  10. JS - 函数,Math,number

    函数分为:关键字function 匿名函数 — 没有名字的函数 有名函数 — 有名字的函数 <body> <div></div> <script> // ...