从JSP页面调用Java Script函数而不返回值

时间:2016-05-04 04:58:47

标签: javascript jsp

我编写了一个java脚本函数,它将根据作为参数传递给函数的代码返回语言名称。

我从servlet获取代码作为响应。我尝试了以下方式:

----
</fieldset>
    <fieldset class = "field">
        <legend>Language</legend>
        <table border = '0'>
            <tr>
                <td>Spoken:</td>
                <!-- <td><input type = "text" name = "FirstName"  value = "${spoken}"/></td> -->
                <td><input type = "text" name = "spoken"  value = getLanguage(${spoken}) /></td>
            </tr>
            <tr>
                <td>Written:</td>
                <td><input type = "text" name = "written"  value = "${written}"/></td>
            </tr>
        </table>

</fieldset>
----

Java脚本函数:

<script>
function getLanguage(code) {
    if(code.equals("EN"))
        return "ENGLISH";
    else if(code.equals("SP"))
        return "SPANISH";
    else
        return "";
}
</script>    

但是在输出而不是显示语言时,我正在显示函数调用。有人能告诉我这里发生了什么问题吗?

2 个答案:

答案 0 :(得分:0)

也许你不能这样做。你将代码传递给js函数,然后在js函数内部你可以进行操作。像那样;

<script>
function setLanguage(code, elementId) {
    if(code.equals("EN"))
        document.getElementsByTagId(elementId).val = "ENGLISH";
    else if(code.equals("SP"))
        document.getElementsByTagId(elementId).val = "SPANISH";
    else
        document.getElementsByTagId(elementId).val = "Unknow";
}
</script>    

答案 1 :(得分:0)

您需要在<script></script>之间调用javascript函数。

可能有几种方法可以解决这个问题。一种解决方案如下:

在你的html中,使用

<input type = "text" name = "FirstName"  data-value = "${spoken}"/>

请注意data-value属性如何保存spoken的值。

在定义 <script>之后,请使用以下getLanguage()

<script>

(function() {
  var input = document.querySelector('input[name=FirstName]')[0];
  var code = input.getAttribute('data-value');
  input.setAttribute('value', getLanguage(code));

})();

</script>