简体   繁体   English

如何在提交之前运行javascript函数?

[英]How can I make a javascript function run before submit?

I am using a javascript function to append values to a hidden div, which has to be submitted to the database. 我正在使用javascript函数将值附加到隐藏的div,该div必须提交到数据库。
The javascript function needs to run when the Submit button is clicked, append the values, and then the form should be submitted. 单击“提交”按钮时,需要运行javascript函数,附加值, 然后提交表单。
My js code to append the values like this: 我的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()+']');
});

(This output is evaluated as an array) (此输出被评估为数组)

I am using Rails form_tag and text_field_tag 我正在使用Rails form_tagtext_field_tag

How can I make this function run (and finish) right before the form is submitted to the database? 如何在将表单提交到数据库之前运行(并完成)此功能?

You can write your all code into onSubmit event 您可以将所有代码写入onSubmit事件

like.. - 喜欢.. -

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

});

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

then the function dealing with the div and then an $(#form-id).trigger('submit') to submit the form after the div has been populated 然后是处理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');
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM