Переменная связывания из функции javascript - PullRequest
0 голосов
/ 23 марта 2020

Я пытаюсь создать эту страницу в своем приложении, но эта ошибка сводит меня с ума. Я отображаю некоторые поля моей формы form в таблице. В четвертом столбце я хочу отобразить выпадающее меню с элементами form.VATcodeList. Выбранное значение будет связано через path="fieldNameInMyJavaBean" в моем Java Bean (которое явно имеет свойство fieldNameInMyJavaBean).

В первом sf:select я могу правильно видеть свое выпадающее меню. Во втором (в функции javascript addRow()) я получил эту ошибку:

Ни BindingResult, ни простой целевой объект для имени компонента 'fieldNameInMyJavaBean' не доступны в качестве атрибута запроса

Спасибо за вашу помощь !!

Это моя. jsp страница:

<sf:form method="POST" action="somewhere" modelAttribute="form">
    <div class="table-responsive col-md-10">
        <table id="tabella" class="table table-fixed">
            <thead>
                <tr> ... </tr>
            </thead>
            <div class="panel-group no-margin-bottom col-xs-12 no-padding">
                <tbody class="h-scroll">
                    <c:forEach items="${form.rowList}" var="row" varStatus="status">
                        <tr>
                            <td> ... </td> 
                            <td> ... </td>
                            <td>
                                <sf:select path="fieldNameInMyJavaBean" class="form-control">
                                    <sf:option value="${row.VATPerc}" label="${row.lawRef}" cssClass="tile blue"></sf:option>
                                    <c:forEach items="${form.VATcodeList}" var="item">
                                        <sf:option value="${item.VATPerc}">
                                            <c:out value="${item.lawRef}" />
                                        </sf:option>
                                    </c:forEach>
                                </sf:select>
                            </td> 
                            <td> ... </td> 
                            <td> <button type="button" class="btn btn-danger small-button-width" onclick="removeRow(this)">-</button> </td>
                        </tr>
                    </c:forEach>
                </tbody>                                
                <tbody id="bodyToAdd" class="h-scroll" style="background-color:#CCFFE5;">
                </tbody>
                <tbody>
                    <tr> 
                        <td></td> <td></td><td></td><td></td>
                        <td> <button type="button" class="btn btn-success small-button-width" onclick="addRow()">+</button> </td>                                           
                    </tr>
                </tbody>
            </div>
        </table>
    </div>
</sf:form>

, а это моя javascript:

function addRow() {
    const tr = document.createElement('tr');

    tr.innerHTML = `
        <td>...</td>
        <td>...</td>
        <td>
            <sf:select path="fieldNameInMyJavaBean" class="form-control">
            <sf:option value="" label="*****" cssClass="tile blue"></sf:option>
                <c:forEach items="${form.VATcodeList}" var="item">
                    <sf:option value="${item.VATPerc}">
                        <c:out value="${item.lawRef}" />
                    </sf:option>
                </c:forEach>
            </sf:select>
        </td> 
        <td>...</td>
        <td> <button type="button" class="btn btn-danger small-button-width" onclick="removeRow(this)">-</button></td>
    `;

    document.getElementById('bodyToAdd').appendChild(tr);
    };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...