【问题标题】:Coffeescript bind submit form to show div on submitCoffeescript 绑定提交表单以在提交时显示 div
【发布时间】:2014-09-27 04:19:56
【问题描述】:

我试图在按下提交按钮时显示加载 gif,但我的咖啡脚本似乎无法正常工作。提交表单时如何使用 Coffeescript 显示 div?

咖啡脚本:

$(document).ready ->
$('form#add_product_form').submit ->
    console.log("test")
    $("#circularG").show()
    false

HTML 表单:

<form accept-charset="UTF-8" action="/products/new" data-remote="true" id="add_product_form" method="post"><div style="display:none"><input name="utf8" type="hidden" value="✓"></div>
      <p>
        <label for="link_url">Url</label><br>
        <input autofocus="autofocus" id="link_url" name="link[url]" type="text">
      </p>

      <p>

        <input class="btn btn-primary" name="commit" type="submit" value="Add Product">
      </p>
</form>

我的 Coffeescript 正在被编译成 js:

  $(document).ready(function() {
return $('form#add_product_form').submit(function() {
  console.log("test");
  $("#circularG").show();
  return false;
});

});

【问题讨论】:

    标签: javascript jquery forms ruby-on-rails-4 coffeescript


    【解决方案1】:

    确保在第二行之前添加空格

    $(document).ready ->
      $('form#add_product_form').submit -> #HERE
        console.log("test")
        $("#circularG").show()
        false
    

    【讨论】:

    • 我试过了,但是没用 =/ 有什么理由为什么这个空间会有所作为? Coffeescript 语法?
    • 是的,有了这个空间,文档准备好后代码就可以工作了。整个代码是ready函数的回调。
    • 您确定 Jquery 已加载,并且#circarG 存在吗?
    • 是的,Jquery 已加载,我有一个 id=circularG 的 div。即使我没有,“测试”也应该打印到控制台,这不会发生
    • 把整个页面的代码放在某个地方。我在浏览器中测试了这段代码,它正在工作。所以问题可能出在其他地方!
    【解决方案2】:

    您必须将“提交”事件附加到 FORM 元素,例如

      $('#id_for_form').submit ->
        $('.div').show()
    

    【讨论】: