我需要在网页上创建链接,该链接在onclick
事件触发时调用具有不同参数的javascript函数。因此,函数需要通过参数。
在我的代码中,如下所示,我在wr()
内从onclick
致电时将参数传递给commandLink
。如果我将i
作为参数传递给wr()
中的onclick
函数,则代码无法成功执行,但如果我传递一个常量ie wr(4)
则成功。如何成功将变量参数传递给此javascript函数?
<h:form>
<ui:repeat value="#{bean.list}" var="i">
<p:commandLink onclick="wr(i)" value="#{i}" /><br/>
</ui:repeat>
</h:form>
<p id="e">fd</p>
<script type="text/javascript" >
function wr(i){
document.getElementById("e").innerHTML="this is "+i+ " !";
}
</script>
答案 0 :(得分:1)
onclick属性的标记不应该使用#{i}评估变量'i'而不是仅传递'i'吗?
所以它应该是:
<ui:repeat value="#{bean.list}" var="i">
<p:commandLink onclick="wr(#{i})" value="'#{i}'" /><br/>
</ui:repeat>
您是否曾使用类似FireBug之类的内容来查看您在JS函数内部评估的内容是什么?
修改:更新了上面的标记,将#{i}表达式括在单引号中
答案 1 :(得分:0)
您应该使用this
传递元素的引用。它比传递硬参数更灵活。
例如:...onclick="wr(this)"...
然后
function wr(elm){
document.getElementById("e").innerHTML="this is "+ elm.value + " !";
}
答案 2 :(得分:0)
你应该这样做:
<ui:repeat value="#{bean.list}" var="i">
<p:commandLink onclick="wr('#{i}')" /><br/>
</ui:repeat>