使用Genexus,我试图设置一个Button的JSEvent属性来做一个简单的值赋值:
Event Start
DoAssignments.JSEvent("onclick", "document.getElementById('" + &Field1.InternalName + "').value = 'Hello!'")
endEvent
执行此操作后(button_click),& Field1似乎具有正确的值。 但是一个简单的Genexus assignemnt(& Field2 =& Field1)表明,在内部,对于Genexus,这个& Field1仍然是空的。
如何检索JavaScript值/ functionReturn并在Genexus中使用它?
答案 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; ")
我用过它。