如何将值传递给wicket中的javascript函数
我有一个要求,即每个事件都需要被捕获,比如页面加载和uiclick。基本上,我必须在页面本身的img标签中显示用户看不到的信息。 对于页面加载,我已经使用img标记和从wicket获得的src完成了。 但是在uiclick事件中,我必须执行异步调用 我试过这样做如何将值传递给wicket中的javascript函数,javascript,wicket,Javascript,Wicket,我有一个要求,即每个事件都需要被捕获,比如页面加载和uiclick。基本上,我必须在页面本身的img标签中显示用户看不到的信息。 对于页面加载,我已经使用img标记和从wicket获得的src完成了。 但是在uiclick事件中,我必须执行异步调用 我试过这样做 <input type="button" onclick="makeRequest(wicket:id="clickImage",'GET', null, null,'CLICKSTREAM')" name="add" valu
<input type="button" onclick="makeRequest(wicket:id="clickImage",'GET', null, null,'CLICKSTREAM')" name="add" value="SIGN IN">
但我有例外
,索引=39,当前=[原始标记]]
位于org.apache.wicket.markup.AbstractMarkupParser.parseMarkup(AbstractMarkupParser.java:299)
位于org.apache.wicket.markup.AbstractMarkupParser.parse(AbstractMarkupParser.java:181)
位于org.apache.wicket.markup.loader.SimpleMarkupLoader.loadMarkup(SimpleMarkupLoader.java:50)
位于org.apache.wicket.markup.loader.InheritedMarkupMarkupLoader.loadMarkup(InheritedMarkupMarkupLoader.java:55)
位于org.apache.wicket.markup.loader.DefaultMarkupLoader.loadMarkup(DefaultMarkupLoader.java:51)
位于org.apache.wicket.markup.MarkupFactory.loadMarkup(MarkupFactory.java:430)
在org.apache.wicket.markup.MarkupCache.loadMarkup(MarkupCache.java:442)我不确定您想要实现什么,但似乎使用wicket
按钮并附加SimpleAttributeModifier
或甚至Ajax行为来建模更适合您,特别是当您发出的异步请求是针对您自己的应用程序时
在JS函数的参数中使用wicket:id
,根本没有意义。在HTML中使用wicket:id
将wicket组件附加到标记。如果clickImage
只是一个普通的HTMLid
属性,只需将其键入字符串即可
例如:
<input type="text" id="someId"> <!-- Notice this is not a Wicket component -->
<input type="button" wicket:id="buttonComponent" onclick="makeRequest('someId','GET', null, null,'CLICKSTREAM'">
爪哇
呈现的HTML:
<input type="text" id="someId">
<input type="button" onclick="makeRequest('someId','GET', null, null,'CLICKSTREAM'">
第二种方法功能更强大,例如,您可以向中继器中的元素添加AttributeModifiers
,这样您就可以只将运行时生成的id
s传递给javascript函数。我不确定wicket是什么,但我很确定内联点击处理程序不是有效的javascript语法。谢谢,我只是在找这个。
TextField txt = new TextField("textComponent");
txt.setOutputMarkupId(true);
txt.setMarkupId("someId"); // Make sure it is unique in the page
Button b = new Button("buttonComponent");
b.add(new SimpleAttributeModifier("onclick", "makeRequest('" + txt.getMarkupId() + "','GET', null, null,'CLICKSTREAM'"));
add(txt);
add(b);
<input type="text" id="someId">
<input type="button" onclick="makeRequest('someId','GET', null, null,'CLICKSTREAM'">