在显示值#{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;
}
答案 0 :(得分:0)
将javascript
作为value
属性,您无法运行javascript
。如果您的h:textOutput
包含在function get_vocab(inp)
{
// ... rest of your logic ...
}
下方,则可以获取该值,并使用javascript将其更改为客户端。
function get_vocab()
{
var span = document.getElementById("vocab_value");
var inp = span.innerText;
// ... rest of your logic without return ...
span.innerText = y;
}
<h:outputText id="vocab_value" value="#{row.currentString}" styleClass="#{row.displayClass}" />
CAShapeLayer