Как передать строку в функцию JavaScript в XHTML? - PullRequest
0 голосов
/ 13 марта 2012
function passString(str)
{
    alert(str);
}

function passText()
{
    str = document.getElementById('formId:hidden1').value;
    alert(str);
}

Я использую обе вышеупомянутые функции javascript, чтобы получить строку, полученную из файла bean-файла jsf, но ни одна из них не работает. Строка успешно получена из «# {addRoute5.teamNames}» (файл bean jsf - см. Ниже) и отображена в inputText, но javascript по какой-то причине не может принять строку из xthml. Мой код в файле xhtml выглядит следующим образом:

Заранее спасибо

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core">
    <f:view>
        <h:head>
            <link href="css/myCss1.css" rel="stylesheet" type="text/css"/>
            <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
            <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
            <title>Paris-Dakar Rally</title>
            <link href="css/mapsStyle.css" rel="stylesheet" type="text/css"/>
            <script type="text/javascript" src="//maps.googleapis.com/maps/api/js?    sensor=false"></script>

        </h:head>
        <h:body onload ="#{addRoute5.calculateLatMarker()}">
            <div id="container">
                <div id="header">
                    <div id="title">
                        <span>Paris - Dakar Rally</span>
                    </div>
                </div>

                <div id="map_canvas"></div>

                <h:form id="formId">


                    <div id="body">

                        <div class="transbox">
                            <h:inputText id="hidden1" value="#{addRoute5.teamNames}"/>                            
                            **<h:commandButton type ="button" value="Start Simulation"     onclick ="passText()" or onclick="passString(#{addRoute5.teamNames})"/>**


                        </div>
                    </div>
                    </h:form>
            </div>
        </h:body>
    </f:view>
</html>

1 Ответ

1 голос
/ 13 марта 2012

Stop. Шаг назад. Разбей проблему.

Код, который вы указали, является шаблоном, который будет обработан на сервере. Затем перешли в браузер. Затем браузер извлечет JavaScript из HTML и запустит его.

Посмотрите на исходный код, который обрабатывает браузер. Затем спросите себя «Этот JavaScript не выполняет то, что я ожидаю? Или шаблон не выводит нужный мне JavaScript?»

Похоже, у вас есть это:

onclick="passString(#{addRoute5.teamNames})"

, который будет генерировать что-то вроде:

onclick="passString(foo)"

когда вы хотите что-то вроде:

onclick="passString('foo')"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...