[Infopath]使用jquery给infopath表单的的field赋值。 how to set value to Infopath field by Jquery

客户有个需求,需要在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赋值的话,需要模拟一下。

posted @ 2016-04-19 17:52  杨崇伟  阅读(451)  评论(0编辑  收藏  举报
版权所有,转载请标明出处