Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将值传递给wicket中的javascript函数_Javascript_Wicket - Fatal编程技术网

如何将值传递给wicket中的javascript函数

如何将值传递给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

我有一个要求,即每个事件都需要被捕获,比如页面加载和uiclick。基本上,我必须在页面本身的img标签中显示用户看不到的信息。 对于页面加载,我已经使用img标记和从wicket获得的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
按钮
并附加
SimpleAttributeModifier
或甚至Ajax行为来建模更适合您,特别是当您发出的异步请求是针对您自己的应用程序时

在JS函数的参数中使用wicket:id
,根本没有意义。在HTML中使用
wicket:id
将wicket组件附加到标记。如果
clickImage
只是一个普通的HTML
id
属性,只需将其键入字符串即可

例如:

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