我有一个 javascript 函数,该函数从带有字节数据数组的 actionscript 组件中调用。该函数被正确调用,我可以验证接收到的数据。
我需要将该数据取回检票口,但如果我使用 javascript 设置组件的值并触发 onChange 事件,我会看到该事件但组件的模型尚未更新,例如:
Javascript 函数
<script type="text/javascript">
function f(obj) {
document.getElementById("byteArray").value = obj.byteArray;
document.getElementById("byteArray").onchange();
}
</script>
检票口行为
final TextField field = new TextField("byteArray", Model.of(""));
field.add(new AjaxEventBehavior("onChange") {
@Override
protected void onEvent(AjaxRequestTarget target) {
String byteArray = getComponent().getDefaultModelObjectAsString());
// byteArray has not changed here
}
});
我尝试过使用 PropertyModel 和 IModel 实现,但没有任何乐趣。我已经能够使用表单提交将数据返回到 Wicket,但这会强制刷新页面,这对我的应用程序没有好处。我无法从 Javascript 以编程方式成功触发任何类型的 AjaxFormSubmission 事件。
我已尝试使用 wicketAjaxGet / Post 提交数据,但我收到 413 错误,因为我的字节数组太大。
有任何想法吗?