Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.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
Javascript 将全局变量用作操作绑定方法的参数_Javascript_Jsf 2 - Fatal编程技术网

Javascript 将全局变量用作操作绑定方法的参数

Javascript 将全局变量用作操作绑定方法的参数,javascript,jsf-2,Javascript,Jsf 2,由于我既不是javascript专家,也不是jsf专家,我询问是否可以定义一个全局变量,然后将其作为一个动作绑定方法的参数传递。 举个例子也许更清楚…:) 在我的xhtml代码中,应该是这样的: ... <script type="text/javascript"> var isEdit = "false"; //<![CDATA[ function editSelected(selBox, inputFiled) { var htmls

由于我既不是javascript专家,也不是jsf专家,我询问是否可以定义一个全局变量,然后将其作为一个动作绑定方法的参数传递。 举个例子也许更清楚…:)

在我的xhtml代码中,应该是这样的:

...
<script type="text/javascript">
  var isEdit = "false";

  //<![CDATA[ 
    function editSelected(selBox, inputFiled)
    {
      var htmlstring = selBox.options[selBox.selectedIndex].text;
      inputFiled.value = htmlstring;
      isEdit = "true";
    }
  //]]>
</script>

...

<h:commandLink
  styleClass="waiButton"
  value="#{lakshmiMsg.commonButtonAdd}"
  action="#{detailController.addCreator(**isEdit**)}"
  rendered="#{detailModel.mode != detailModel.viewMode}">
</h:commandLink>
...
。。。
var isEdit=“false”;
//
...
...
这样的事情可能吗?
如果没有,还有其他方法吗?

让JavaScript更新隐藏的表单字段可能会更好地处理类似的问题。commandLink上的操作在服务器上计算,而JavaScript中的函数在浏览器中运行


使用隐藏的表单字段,您可以在addCreator方法中检查它(不是作为参数,而是从请求中检查),以查看您是否处于编辑模式。

您可以通过JS更改隐藏的输入字段。例如

<h:inputHidden id="edit" value="#{bean.edit}" />
另一种方法是,不要在JS中执行
editSelected()
作业,而是使用
magic在纯JSF中执行该作业。由于代码不完整且没有足够的自文档化,因此这方面的功能需求不明确,因此我不能给出一个启动示例

document.getElementById("form:edit").value = isEdit;