今天偶尔遇到这个问题,业务背景是在表单中对数据进行取数赋值。
由于表单的id和name都是动态生成,使用 $("#x"+"_yy").numberbox("setValue",aa)的方式会报错,说对象不知道该方法。但是通过$("#x"+"_yy").val(aa) 可以赋值给真实值的隐藏域(自己看看开发者模式)。
//初始化弹窗的配置信息
function initCompareWindow(divs){
var d=null;
for(var i=0;i<divs.length;i++){
//遍历节点属性找到name属性
for(var j=0;j<divs[i].attributes.length;j++){
if(divs[i].attributes[j].name=="name"){
nodeName = divs[i].attributes[j].nodeValue;
if(nodeName != undefined){
//根据name找到可对比店的属性值
d = divs[i].innerText;
$("#f_"+nodeName).val(d);
}
}
}
}
}
然后我的解决办法是,在表单的class中,将
<input name="f_reference_position" id="f_reference_position" class="easyui-numberbox" style="width: 200px;"
></input>
多加一个 easyui-textbox 修改成可以校验数字的进行渲染
<input name="f_reference_position" id="f_reference_position" class="easyui-textbox easyui-numberbox" style="width: 200px;" data-options="validType:['length[1,9]']" ></input>
就ok了!