我有一个要求,每个事件都需要捕获,例如页面加载和uiclick。基本上,我必须在用户本身看不见的页面本身上的img标签中显示信息。
所以对于页面加载,我已经完成了img标签和从检票口获得的src。
但是在uiclick事件中,我必须进行异步调用。

我尝试过这样

<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 <input type="button">Button进行建模并附加SimpleAttributeModifier甚至Ajax Behavior可能更适合您,特别是在异步请求的情况下您正在制作的是您自己的应用程序。

在JS函数的参数中使用wicket:id根本没有意义。您在HTML中使用wicket:id将Wicket组件附加到标签。如果clickImage只是纯HTML id属性,只需将其键入为String。

例如:

<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'">


如果您不知道id是因为它可能是动态生成的,请在Component中使用setOutputMarkupId(true),并使用SimpleAttributeModifier对onclick事件处理程序进行建模。您可以使用getMarkupId()获取组件的标记ID。

例如:

HTML:

<input type="text" wicket:id="textComponent">
<input type="button" wicket:id="buttonComponent">


爪哇

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);


呈现的HTML:

<input type="text" id="someId">
<input type="button" onclick="makeRequest('someId','GET', null, null,'CLICKSTREAM'">


第二种方法功能更强大,例如,您可以将AttributeModifiers添加到转发器中的元素,以便仅在运行时将已知的id传递给javascript函数。

关于javascript - 如何将值传递给wicket中的javascript函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12305434/

10-13 01:27