客户有个需求,需要在infopath表单中嵌入一段我们自己的东西,计算后要更新infopath某一个field.
1. 怎么去获取到那个field
由于infopath生产的html非常的复杂,嵌套太多,其次id都很凌乱,并且在编辑和查看的时候id不同,但是每个field在html中有个属性叫‘originalid’,这个id是相对固定的。所以可以用这个属性来获取相应的控件。
比如:$("input[originalid=‘v1_I1_T9‘]") //这就获取到了该input
2. 怎么给它赋值,并且在保存表单的时候,顺利把值存进来。
infopath中,如果你只是简单的用jquery给一个input赋值,然后保存,该值是不会保存的。我们得模拟类似于有人去实际填写该值,然后保存。原因后面解释。
$("input[originalid=‘V1_I1_T10‘]").val(totalPrice); //赋值 $("input[originalid=‘V1_I1_T10‘]").focus(); //类似于鼠标焦点放到该文本框了 $("input[originalid=‘V1_I1_T10‘]").blur(); //鼠标焦点离开 //这样就是一个完整的填写值得过程。
原因就是在infopath中,真正的field value是存在一个配置文件当中的,当前台的html的input或者其他控件的值在改变后,并且鼠标移开后,会触发一个把值写入到配置文件的过程,因此如果用jquery赋值的话,需要模拟一下。
时间: 2024-10-05 22:42:45