XPages-inputtext字段上的onchange事件丢失单击
我有一个简单的表单,在inputText类型的字段上有一个onchange事件 单击另一个对象时Onchange事件开始。例如保存按钮 代码将运行,但在保存按钮上的onchange单击将丢失 我附上了一个重现该问题的页面的示例代码 建议XPages-inputtext字段上的onchange事件丢失单击,xpages,Xpages,我有一个简单的表单,在inputText类型的字段上有一个onchange事件 单击另一个对象时Onchange事件开始。例如保存按钮 代码将运行,但在保存按钮上的onchange单击将丢失 我附上了一个重现该问题的页面的示例代码 建议 <?xml version="1.0" encoding="UTF-8"?> <xp:view xmlns:xp="http://www.ibm.com/xsp/core"> <xp:div style="p
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:div style="padding:20px;"></xp:div>
<xp:button value="Save" id="button1" style="margin:20px;">
<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
<xp:this.action><![CDATA[#{javascript:print('click');}]]></xp:this.action>
<xp:this.script><![CDATA[alert('click');]]></xp:this.script>
</xp:eventHandler>
</xp:button>
<xp:radioGroup id="radioGroup1" style="margin:20px;">
<xp:selectItem itemLabel="val1"></xp:selectItem>
<xp:selectItem itemLabel="val2"></xp:selectItem>
<xp:selectItem itemLabel="val3"></xp:selectItem>
<xp:eventHandler event="onchange" submit="true" refreshMode="complete">
<xp:this.action><![CDATA[#{javascript:print('onchange - radiobutton');}]]></xp:this.action>
</xp:eventHandler>
</xp:radioGroup>
<xp:inputText id="inputText1" style="margin:20px;">
<xp:eventHandler event="onchange" submit="true" refreshMode="complete">
<xp:this.action><![CDATA[#{javascript:print('onchange - start');
var millis = 10000;
var date = new Date();
var curDate = null;
do { curDate = new Date(); }
while(curDate-date < millis);
print('onchange - finish');}]]></xp:this.action>
</xp:eventHandler>
</xp:inputText>
</xp:view>
您可以通过
oninput
事件而不是onchange
来完成。只需更改eventHandler中的事件属性。但是,
您还可以在
onkeyup
事件上触发CSJS代码,以关注页面上的另一个组件。因此,它将刷新页面。您可以使用setTimeout()
函数执行此操作,因此,如果用户暂时不按任何键,它将触发刷新。感谢您的回复,但我认为这些解决方案不适合UX
我认为唯一可行的解决办法是:
1禁用服务器onchange事件并添加刷新按钮
2尽可能使用onchange客户端js事件
其他建议