javascript - 如何将jQuery中的输入类型传递给ajax

标签 javascript jquery ajax forms

我有一个基本的 Bootstrap 表单,我想通过 ajax 将输入类型传递给 php。我可以使用 serializeArray() 获取输入名称和值。

我如何扩展 serializeArray 的输出以包含输入“类型”?


更多信息...这是我当前的表格...

<form id="second_example_form" class="form-horizontal core_form_submission" action="#" method="post" data-callback="<?php echo __DIR__ . '/form-second-example.callback.php'; ?>">
<div class="form-group">
    <label class="col-sm-2 control-label" for="email">Email</label>
    <div class="col-sm-5">
        <input id="email" class="form-control" required type="email" placeholder="Email" name="email">
    </div>
    <div class="col-sm-5 messages"></div>
</div>
    <div class="form-group">
    <div class="col-sm-offset-2 col-sm-10">
        <button type="submit" class="btn btn-default">Submit</button>
    </div>
</div>

这里是调用 js 的 ajax...

$('#form').on('submit', function(e) {

    e.preventDefault();

    var data = form.serializeArray();

    $.post('ajax/forms.ajax.php', {
            data: data
    }, function(r) {
        var json = JSON.parse(r);
    }
});

var data = form.serializeArray(); 非常适合传递名称和值...但不包括输入类型。

有人能帮忙吗?

最佳答案

Serialize 不提供,您必须构造所有类型的名称值并将其传递给您的服务器。

$('form').on('submit', function(e) {
  e.preventDefault();

  var formData = $(this).serializeArray();
  $('input, select', this).each(function() {
    formData.push({
      name: $(this).attr('name') + '_type',
      value: $(this).prop('tagName').toLowerCase()
    });
  });
  console.log(formData);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="second_example_form" class="form-horizontal core_form_submission" action="#" method="post" data-callback="<?php echo __DIR__ . '/form-second-example.callback.php'; ?>">
  <div class="form-group">
    <label class="col-sm-2 control-label" for="email">Email</label>
    <div class="col-sm-5">
      <input id="email" class="form-control" required type="email" placeholder="Email" name="email">
    </div>
    <div class="col-sm-5 messages"></div>
  </div>
  <div class="form-group">
    <div class="col-sm-offset-2 col-sm-10">
      <button type="submit" class="btn btn-default">Submit</button>
    </div>
  </div>
</form>

关于javascript - 如何将jQuery中的输入类型传递给ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50647160/

相关文章:

javascript - jQuery 对象中的这个选择器

javascript - Touchmove 与 Phonegap

javascript - Bootstrap 中的列高度

javascript - Jquery - 如何将事件类添加到整个导航菜单路径?

javascript - 当我将变量附加到 url 时,如何使 .load 工作?

jquery - 在文本中查找链接并使用 jquery 将其包装在标签中

javascript - HTML5 Canvas 全尺寸

javascript - 具有多个按钮的 Jquery 调用一个发送不同参数的函数

ruby-on-rails - 如何更新 ruby​​ on Rails 中的部分 View

javascript - 我的第一个 AJAX 请求遇到了麻烦