我正在尝试从JavaScript到EJS变量中获取选择选项值onchange
,以便在EJS for Loop中使用它。
<!--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
<%}%>
错误:在编译ejs时,C:\ Users \ Ravish \ Desktop \ LicenseApp \ IrysLicenseGen \ views \ addNew.ejs中出现意外标识符。如果上述错误没有帮助,则您可以尝试使用EJS-Lint:https://github.com/RyanZim/EJS-Lint如果要创建异步函数,请传递async:true作为选项。
请注意,<% %>
中的所有代码都是在服务器端由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>
如果这不是错误,请提供更多详细信息。