【问题标题】:How can I make a javascript function run before submit?如何在提交之前运行 javascript 函数?
【发布时间】:2014-02-03 07:24:08
【问题描述】:

我正在使用 javascript 函数将值附加到隐藏的 div,该 div 必须提交到数据库。
javascript 函数需要在单击提交按钮时运行,附加值,然后然后应该提交表单。
我的 js 代码附加这样的值:

$('#submitButton').click( function () {
  $('#submitField').val('[');
  $.each(Selector.selected_options, function (i) {
    if (i == 0){
      $('#submitField').val($('#submitField').val() + this.id);
    } else {
      $('#submitField').val($('#submitField').val() + ', ' + this.id);
    }
  });
  $('#submitField').val($('#submitField').val()+']');
});

(此输出被评估为一个数组)

我正在使用 Rails form_tagtext_field_tag

如何在表单提交到数据库之前让这个函数运行(并完成)?

【问题讨论】:

  • 我认为它应该已经做你想做的事了。我建议不要重复使用$("#submitField").val(),而是将值累积到一个字符串中并将其放入val()一次。

标签: javascript jquery html ruby-on-rails ruby-on-rails-3


【解决方案1】:

您可以将所有代码写入 onSubmit 事件

喜欢.. -

$( "#target" ).submit(function( event ) {
  alert( "Handler for .submit() called." );

});

【讨论】:

    【解决方案2】:

    你可以使用$(#form-id).submit.preventDefault()

    然后是处理 div 的函数,然后是 $(#form-id).trigger('submit') 在填充 div 后提交表单

    $('#FORM-ID').submit( function (e) {
      e.preventDefault();
      $('#submitField').val('[');
      $.each(Selector.selected_options, function (i) {
        if (i == 0){
          $('#submitField').val($('#submitField').val() + this.id);
        } else {
          $('#submitField').val($('#submitField').val() + ', ' + this.id);
        }
      });
      $('#submitField').val($('#submitField').val()+']');
      $('#FORM-ID').trigger('submit');
    });
    

    【讨论】:

      猜你喜欢
      • 2018-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-24
      • 1970-01-01
      • 2012-12-10
      • 2011-03-30
      相关资源
      最近更新 更多