在提交之前执行js代码"提交”;在铁轨上的红宝石

Execute js code before committing "submit" in ruby on rails

本文关键字:提交 红宝石 quot 铁轨上 代码 执行 js      更新时间:2023-09-26

我似乎无法制作我在神奇的SO.上找到的旧js脚本

<div class="form-actions">
    <%= f.button :submit, class:"btn btn-success create-campaign" %>
  </div>

这是我的提交按钮。但是有一个问题。

<div class="message-div" id="textField" contenteditable="true" maxlength="180"></div> 
<%= f.input :message ,as: :text,as: :hidden  ,input_html: { class: 'special', maxlength:'180' } %>

我使用div来获取我为它所做的工作的输入,但我的表单从隐藏的文本区域获取它的输入。

因此,当点击提交按钮时,我尝试获取div的内容并将其写入文本区域。

但是我写的js脚本没有被执行。

$(document).on("click",".create-campaign",function(e){
console.log('asdasd');
var a = $('.message-div').html();

document.getElementById('.special').value = a;
});

这是代码。

当我将监听器类更改为另一个按钮时,它可以正常工作(至少我看到了控制台日志),但当按下提交按钮时就不会了。

我该怎么办?

干杯。

您需要防止触发默认提交操作:

$(".create-campaign").click(function(e) {
  e.preventDefault();
  console.info('asdasd');
  var a = $('.message-div').html();
  alert(a); // just to check that your data is there
  document.getElementById('.special').value = a;
  $("#YOUR_FORM_ID").submit();
});