Написание HTML-бина в JavaScript - PullRequest
2 голосов
/ 03 декабря 2010

Эй, ребята, Я пытаюсь написать динамический HTML-бин с помощью сценария Java но я продолжаю получать сообщение об ошибке «функция не найдена» при нажатии кнопки .. вот пример кода

<html>
<html:form action="loginAction.do" >
<head>
    <script type="text/javascript">
        function test(){
            document.getElementById('dd').innerHTML =
                              "<html:text property='pid'/>";
        }
    </script>

</head>
<body>
            <table align="center">
                <tr>
                    <td align="center">
                    <input type="button" value="addprod" onclick="test()"/>
                    </td>
                </tr>
                <tr>
                    <td align="center">
                        <div id="dd"></div>
                    </td>
                </tr>
            </table>
    </html:form>
</body>
</html>

Я не знаю о

<html:form action="loginAction.do" >

где это должно быть расположено Я пытался найти его в пределах <body> но я получил большое исключение из-за написания <html:text property='pid'/> на JavaScript за пределами <html:form> ... нужна ваша помощь, С уважением,

Ответы [ 3 ]

4 голосов
/ 04 декабря 2010

Я полностью согласен с тем, что говорит Майк.
Запись <html:text> внутри javascript бесполезна, так как javascript выполняется на стороне клиента, а для преобразования этого тега в тег html требуется распоряжение.
Лучше написать <input type="text"> внутри javascript и сохранить его имя как «prop», если вы хотите, чтобы распорки заполняли значение этого текста внутри свойства компонента формы «prop». Сохраните тег <html:form в теле. Это будет работать для вас.

3 голосов
/ 04 декабря 2010

Я думаю, что Struts пытается проанализировать <html:text /> как тег в вашем скрипте, а не просто строку javascript. Попробуйте переместить <html:form action="loginAction.do" > в тело И <script> в пределах <html:form>, подобного этой скрипке http://www.jsfiddle.net/pL4Aq/1/

Однако, это работает в скрипке, потому что это просто HTML ... Я не думаю, что то, что вы пытаетесь сделать, сработает. <html:text > - это пользовательский тег, который обрабатывается на сервере, выполняет кучу всего, а затем генерирует HTML для вас. Вы никогда не увидите <html:text>, если будете просматривать исходный код из браузера, даже если он находится в вашем jsp.

Возможно, вы захотите попробовать заменить <html:text > на прямой тег <input type="text"> (в этом случае вы можете просто переместить <html:form> в тело и оставить скрипт там, где он есть).

0 голосов
/ 03 декабря 2010

Должно работать в теге <body>.

...