车把表单提交不起作用

Handlebars form submit does not work

我有一个表单,在把手中放置提交不起作用,我必须做什么?有人可以帮忙吗?

 <script id="chat-window-template" type="text/x-handlebars-template">
      <a href="#" class="close"><i class="fa fa-times"></i></a>
      <a href="#">
        <span class="pull-left">
        <img src="{{ user_image }}" width="40">
        </span>
        <span class="contact-name">{{user}}</span>
      </a>
    <div class="panel-body" id="chat-bill"> 
 <form id="messageForm">
    <input id="nameInput" type="hidden" class="input-medium" value="Macbook" />
    <input id="messageInput" type="text" class="form-control" placeholder="Digite uma mensagem..." />
    <input type="submit" value="Send" />
 </form>
   </div>
</script>

$("#messageForm").submit( function() {alert();});

也许在编译 Dom 之前附加了处理程序,尝试监听主体事件,并通过选择器进行过滤,也应该监听将来添加的 Dom 个节点...

$(document.body).on("submit", "#messageForm", function() {alert();});

提交时 运行ning JS 的另一种可能性是 return 从表单元素 onsubmit 属性为 false:

template.hbs

<form id="myForm" onsubmit="myFunc(); return false;">
  <input id="textInput" type="text"></input>
  <input type="submit"></input>
</form>
...
<script src="js/handleForm.js" type="text/javascript"></script>

handleForm.js

function myFunc() {
  console.log("yo");
}

这将在浏览器控制台中记录 "yo"。它之所以有效,是因为在 onsubmit 属性中设置为 false 会阻止浏览器的默认操作(这是 html 的事情,而不是节点或 hbs 的事情)。因此,页面不会重新加载,也不会向超链接添加查询字符串,但 myFunc() 将 运行.

如果您想使用表单数据,只需从 DOM 中获取即可。一种选择是在文本输入上放置一个 id(正如我在 template.hbs 中所做的那样)并使用 jQuery 将其锁定,如下所示:

handleForm.js(修订)

function myFunc() {
  var formText = $("#textInput").val();
  // Do something with formText
}