在h:outputtext值上运行Javascript



在显示值#{row.currentstring}之前,我似乎无法让下面的代码运行javascript。下面是负责显示值

的JSF代码
    <rich:column styleClass="#{row.displayClass}" >
        <f:facet name="header">
        <h:outputText value="#{bundle.currentvocab}" />
        </f:facet>
        <h:outputText id="vocab_value" value="get_vocab('#{row.currentString}')" styleClass="#{row.displayClass}" />
    </rich:column>

这里get_vocab是我正在运行的javascript,如下所示:

        function get_vocab(inp)
{
var b = "car";
var c = "propose";
var d = "check";
var x;
var y;
if (inp.indexOf(b) > -1) {
    x = inp.indexOf(b);
    y = inp.substring(0,x+3);
}
else if (inp.indexOf(c) > -1) {
    x = inp.indexOf(c);
    y = inp.substring(0,x+7);
}
else if (inp.indexOf(d) > -1) {
    x = inp.indexOf(d);
    y = inp.substring(0,x+5);
}
else {
    y = "value not found"
}
return y;
}

您不能通过将其作为value属性来运行javascript。如果你的javascript是包含在h:textOutput以下,你可以得到的值,并改变它的客户端与javascript。

改变:

function get_vocab(inp)
{
  // ... rest of your logic ...
}

:

function get_vocab()
{
  var span = document.getElementById("vocab_value");
  var inp = span.innerText;
  // ... rest of your logic without return ...
  span.innerText = y;
 }

你的jsf代码

 <h:outputText id="vocab_value" value="#{row.currentString}" styleClass="#{row.displayClass}" />

相关内容

  • 没有找到相关文章

最新更新