Как получить значение параметра выбора, используя JavaScript в переменную EJS? - PullRequest
0 голосов
/ 30 октября 2019

Я пытаюсь получить значение параметра выбора onchange из переменной JavaScript в EJS для использования его в EJS для цикла.

    <!--EJS Code>
    <div class="form-row">
                                        <div class="form-group col-md-3">
                                          <!-- <label for="inputState">Count of Tablets</label> -->
    <select id="noOfDevice" class="form-control" name="noOfDevice" onchange="getDeviceCount(this)">
        <option selected>Select</option>
        <option value="1">01</option>
        <option value="2">02</option>
        <option value="3">03</option>
        <option value="4">04</option>
        <option value="5">05</option>
        <option value="6">06</option>
        <option value="7">07</option>
        <option value="8">08</option>
        <option value="9">09</option>
        <option value="10">10</option>
    </select>
    </div>
    </div>

    <script>
        function getDeviceCount(sel) {
            var countNo = sel.value;
            console.log("No of Device:" + sel.value);

        }
    </script>

    <% for(int i=0; i< count ; i++){ %>
        //SomeCode
        <%}%>

Ошибка: неожиданный идентификатор в C: \ Users \Ravish \ Desktop \ LicenseApp \ IrysLicenseGen \ views \ addNew.ejs при компиляции ejs Если приведенная выше ошибка не помогает, вы можете попробовать EJS-Lint: https://github.com/RyanZim/EJS-Lint Или, если вы намеревались создать асинхронную функцию,передать async: true в качестве опции.

1 Ответ

0 голосов
/ 30 октября 2019

Имейте в виду, что весь код в <% %> интерпретируется EJS на стороне сервера. Результат (html + css + js) этой обработки отправляется клиенту. На стороне клиента вы можете получить выбранную опцию и выполнить Ajax-вызов.

Сначала на стороне сервера:

<select id="noOfDevice" class="form-control" name="noOfDevice" onchange="getDeviceCount(this)">
    <option selected>Select</option>
    <option value="1">01</option>
    <option value="2">02</option>
</select>

<script>
    function getDeviceCount(sel) {
        var countNo = sel.value;
        // TODO Send countNo to somewhere
    }
</script>
// use var or let. int is not valid
<% for(var i = 0; i < count; i++){ %>
    <span>Hello <%= i %></span>
<% } %>

Предположим, переменная count установлена ​​на вашем контроллере и имеетзначение 3.

Результат отправлен клиенту:

<select id="noOfDevice" class="form-control" name="noOfDevice" onchange="getDeviceCount(this)">
    <option selected>Select</option>
    <option value="1">01</option>
    <option value="2">02</option>
</select>

<script>
    function getDeviceCount(sel) {
        var countNo = sel.value;
        // TODO Send countNo to somewhere
    }
</script>
<span>Hello 0</span>
<span>Hello 1</span>
<span>Hello 2</span>

Если это не ошибка, предоставьте более подробную информацию.

...