有什么方法可以获取选项标签值并将其传递给车把的帮助者?

时间:2019-08-30 01:53:08

标签: javascript html node.js express handlebars.js

我正在使用Express和Handbars,所以我有一个视图,当客户端从 select 标签中选择一个选项时,我想在该视图中显示有关事件的信息,首先,我有一些信息问题:

  1. 是否可以获取选项标签值并将其发送给帮助程序?
  2. 触发onChange事件时,有什么方法可以调用帮助程序?

我试图使该助手可以从视图的html中包含的脚本进行访问,但是后来我意识到,与在应用程序上声明该助手是相同的。 还尝试使用JavaScript获取标记值并将其返回给html,但这两种方法均无效。

<div class="col-sm-3">
    <div>
      <label for="zoneSelect"><span class="control-label badge badge-light">Zone monitoring</span></label>
    </div>
    <div>
      <select id="zoneSelect" class="custom-select" onchange="{{eventHandler selectedOptionValue }}">
        {{getZones zones}}
      </select>
     </div>
</div>
getZonas: function(zonas) {
    var str;

    zonas.forEach(element => {
      str += '<option value="'+element._id+'">' + element.nombre + '</option>';
    });
   return new Handlebars.SafeString(str);
}

所以,我的想法是从选择中发送选定的选项,并将其发送给使用该信息的帮助程序,如代码所示。

上面的助手是为选择下拉列表构建options标记,区域是从数据库中检索的json数据。

1 个答案:

答案 0 :(得分:0)

看起来您搞砸了前端和后端。事件处理发生在前端。处理代码应该是您视图的一部分,而不是后端。

<script>
  function onZoneSelect (value) {
      // Real action here
      console.log('ZONE', value);
  }
</script>

<select id="zoneSelect" class="custom-select" onchange="onZoneSelect(this.value)">
  <!-- This code could be generated on backend with handlebars -->
  <!-- BEGIN -->
  <option value="Z01">Zone 01</option>
  <option value="Z02">Zone 02</option>
  <option value="Z03">Zone 03</option>
  <option value="Z04">Zone 04</option>
  <option value="Z05">Zone 05</option>
  <!-- END -->
</select>