【问题标题】:Onchange Event not firing EJSOnchange 事件未触发 EJS
【发布时间】:2019-06-18 20:13:49
【问题描述】:

我是 EJS(嵌入式 JavaScript 模板)的新手,我正在尝试触发 dropdownonChange 事件以加载我的其他 dropdown 值。

我的服务器端脚本 (index.js) 是函数所在的位置,而 EJS 是我的客户端,我想在其中触发 onChange 事件。

它没有触发我的功能,我尝试了以下代码:

这是我的Index.Ejs 文件:

<select name="memberid" class="form-control" onchange="onchangeMember()">
  <% for (var i=0; i < memberlist.length; i++){ %>
    <option value=<%= memberlist[i].Id %>><%= memberlist[i].Name %></option>
  <% } %>
</select>

我的index.js(未触发的方法):

var onchangeMember = function() {
  debugger;
  var selection = select.options[select.selectedIndex].value;
  console.log('here');
}

【问题讨论】:

  • 您的脚本与您的 html 相关的位置在哪里?同时打开您的开发者工具 (F12) 并确保没有错误。
  • Ejs 文件实际上是我的 html..控制台上没有错误..
  • 那么你的函数变量声明是在下拉模板之前还是之后?
  • index.js 是服务器端脚本,EJS 文件是客户端..所以我想在更改事件时从 Ejs 调用我的 index.js 函数..就是这样
  • 我使用调试器检查事件触发...但它没有触发

标签: javascript ejs


【解决方案1】:

您可能必须为您的选择标签提供类名。应用类名后,您的代码如下所示:

<select name="memberid" class="form-control member_dropdown">
       <% for (var i=0; i < memberlist.length; i++){ %>
             <option value=<%= memberlist[i].Id %>><%= memberlist[i].Name %></option>
        <% } %>
</select>

更新后的 index.js 文件如下:

$(document).on('change','.member_dropdown', function()
{
    console.log("here");
});

希望对你有帮助。

【讨论】:

  • 我没有使用 Jquery
猜你喜欢
  • 2017-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多