如何在Genexus中使用JavaScript返回的值?

时间:2015-05-29 08:56:10

标签: genexus

使用Genexus,我试图设置一个Button的JSEvent属性来做一个简单的值赋值:

Event Start
  DoAssignments.JSEvent("onclick", "document.getElementById('" + &Field1.InternalName + "').value = 'Hello!'")
endEvent

执行此操作后(button_click),& Field1似乎具有正确的值。 但是一个简单的Genexus assignemnt(& Field2 =& Field1)表明,在内部,对于Genexus,这个& Field1仍然是空的。

enter image description here

如何检索JavaScript值/ functionReturn并在Genexus中使用它?

3 个答案:

答案 0 :(得分:1)

作为参考,探索GX javascript库总是更好,看看你是否可以通过使用它们来解决它,而不是试图逆向工程如何解决这个问题。您的解决方案很好,但如果您更改了GeneXus的版本,它很容易破裂。

例如,你想要的是:

DoAssignments.JSEvent("onclick", "gx.fn.setControlValue('" + &Field1.InternalName + "', 'Hello!',false)")

答案 1 :(得分:0)

解决。 我还必须设置gxoldvalue属性,以便通过JavaScript将值分配给Gx控件。

Event Load

textblock1.Caption = '<script>' + chr(13) + chr(10)
textblock1.Caption += ' function doAssignment() {'  + chr(13) + chr(10)
textblock1.Caption += " var element = document.getElementById('" + &Field2.InternalName + "');" + chr(13) + chr(10)
textblock1.Caption += " element.value = document.getElementById('" + &Field1.InternalName + "').value;" + chr(13) + chr(10)
textblock1.Caption += " element.setAttribute('gxoldvalue', document.getElementById('" + &Field1.InternalName + "').value);" + chr(13) + chr(10)
textblock1.Caption += ' }'  + chr(13) + chr(10)
textblock1.Caption += '</script>'  + chr(13) + chr(10)

DoAssignments.JSEvent("onclick", "doAssignment()")

如果这种方法有任何问题,请告诉我。

由于 海梅

答案 2 :(得分:0)

我希望它可以帮到你:

epftintins.JSEvent("OnChange","var a = document.getElementById('EPFTINTINS')[document.getElementById('EPFTINTINS').selectedIndex].text; console.log(a); if (a=='Juzgado' or a=='Fiscalía') document.getElementById('EPFTINNJUZ').disabled = false; else document.getElementById('EPFTINNJUZ').disabled = true; ")

我用过它。