我正在尝试使用:
<script type="text/javascript">
function myfunc() {
var param = 4;
alert("OK");
}
</script>
我这样调用函数:
<a4j:jsFunction name="myfunc">
<a4j:actionparam name="param" assignTo="#{MyBean.myfield}"/>
</a4j:jsFunction>
但它不起作用。可能是什么原因?
最佳答案
你误解了<a4j:jsFunction>
的目的.它自动生成一个 JavaScript 函数,然后您可以从 View 中的任何 JavaScript 代码调用该函数。
你的例子,
<a4j:jsFunction name="myfunc">
<a4j:actionparam name="param" assignTo="#{MyBean.myfield}"/>
</a4j:jsFunction>
将自动生成以下函数
<script>
function myfunc(param) {
// Here some specific JSF Ajax script which assigns "param"
// to a managed bean property #{MyBean.myfield}
}
</script>
您不需要自己定义它。您只需要从别处的一些 JavaScript 代码中调用它。例如,
<span onclick="myfunc(4)">click here to set 4 in MyBean.myfield</span>
或
<script>
function someOtherFunction() {
var param = 4;
myfunc(param);
}
</script>
反过来又可以像这样使用
<span onclick="someOtherFunction()">click here to call someOtherFunction() which will in turn set 4 in MyBean.myfield</span>
另见:
关于javascript - 如何使用 <a4j :jsFunction><a4j:actionparam>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7580703/