为什么我的JavaScript表单无法提交?

布赖恩·穆利亚迪(Brian Mulyadi)

我正在创建一种通过POST方法将文本字段中包含的数据直接注入到Firebase的表单。

这是html表单的代码:

<form>
  <h5>From:</h5>
      <div class="row">
        <div class="six columns">
          <label for="fromName">Name</label>
          <input class="u-full-width" placeholder="Full Name" id="fromName">
        </div>
        <div class="six columns">
          <label for="fromContactNo">Contact No.</label>
          <input class="u-full-width" placeholder="08xxx" id="fromContactNo">
        </div>
      </div>
      <label for="fromAddress">Address</label>
      <textarea class="u-full-width" placeholder="Full Address" id="fromAddress"></textarea>

      <!-- break -->

      <h5>To:</h5>
      <div class="row">
        <div class="six columns">
          <label for="toName">Name</label>
          <input class="u-full-width" placeholder="Full Name" id="toName">
        </div>
        <div class="six columns">
          <label for="toContactNo">Contact No.</label>
          <input class="u-full-width" placeholder="08xxx" id="toContactNo">
        </div>
      </div>
      <label for="toAddress">Address</label>
      <textarea class="u-full-width" placeholder="Full Address" id="toAddress"></textarea>

      <!-- break -->
      <h5>Delivery Details:</h5>
      <div class="row">
          <div class="u-full-width">
              <label for="itemDesc">Item description</label>
              <textarea class="u-full-width" placeholder="Item Description here" id="itemDesc"></textarea>
            </div>
        </div>

        <!-- break -->
        </br>
      <button class="button-primary" id="add-order">Send</button>
    </form>

而javascript函数如下:

$(document).ready(function(){
var $fromName = $('#fromName');
var $fromContactNo = $('#fromContactNo');
var $fromAddress = $('#fromAddress');
var $toName = $('#toName');
var $toContactNo = $('#toContactNo');
var $toAddress = $('#toAddress');
var $itemDesc = $('#itemDesc');
var $addOrder = $('#add-order');

$addOrder.on('click', function(){

    var newOrder = {
        "from": {
            "name": $fromName.val(),
            "phone_no": $fromContactNo.val(),
            "address": $fromAddress.val(),
        },
        "to": {
            "name": $toName.val(),
            "phone_no": $toContactNo.val(),
            "address": $toAddress.val(),
        },
        "item": $itemDesc.val(),
    };

    $.ajax({
      type: 'POST',
      url: 'https://myUrl.firebaseio.com/order.json',
      contentType: "application/json; charset=utf-8",
      data: JSON.stringify(newOrder),
      success: function(data) {
        console.log("Order added!", data);
      }
    });
});
});

我试图弄乱表格,找不到任何破坏表格的内容。控制台也未显示任何错误。

罗里·麦克罗森(Rory McCrossan)

您在这里有两个问题。首先是您要钩住click事件button这意味着form提交仍在进行中。发生这种情况时,将有效地重新加载页面,因为您没有提供form任何action属性,这反过来又阻止了AJAX调用的完成。要解决此问题,您应该始终挂接到的submit事件,form并使用preventDefault()来阻止默认提交的发生。

其次,仅val()在页面加载时检索输入元素属性。那时,用户尚未与他们互动。相反,您应该在AJAX请求中发送它们之前获取它们的值。

试试这个:

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

    var $fromName = $('#fromName');
    var $fromContactNo = $('#fromContactNo');
    var $fromAddress = $('#fromAddress');
    var $toName = $('#toName');
    var $toContactNo = $('#toContactNo');
    var $toAddress = $('#toAddress');
    var $itemDesc = $('#itemDesc');

    var newOrder = {
        "from": {
            "name": $fromName.val(),
            "phone_no": $fromContactNo.val(),
            "address": $fromAddress.val(),
        },
        "to": {
            "name": $toName.val(),
            "phone_no": $toContactNo.val(),
            "address": $toAddress.val(),
        },
        "item": $itemDesc.val(),
    };

    $.ajax({
        type: 'POST',
        url: 'https://myUrl.firebaseio.com/order.json',
        contentType: "application/json; charset=utf-8",
        data: newOrder, // no need for JSON.stringify here
        success: function(data) {
            console.log("Order added!", data);
        }
    });
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我的JavaScript表单无法提交?

来自分类Dev

JavaScript:为什么我的表单不提交?

来自分类Dev

为什么调用此Javascript函数提交我的表单?

来自分类Dev

为什么我的Javascript无法在提交时添加数据?

来自分类Dev

为什么我不想提交表单?

来自分类Dev

为什么我的dropzone JavaScript表单无法正常工作?

来自分类Dev

为什么我的表单提交事件监听器无法正常工作

来自分类Dev

使用JavaScript提交表单-为什么不从表单获取值?

来自分类Dev

为什么我无法成功更新表单?

来自分类Dev

为什么Jquery表单提交事件无法触发?

来自分类Dev

为什么我的表单在页面加载时自动提交?

来自分类Dev

为什么我的表单提交仍然刷新页面?

来自分类Dev

为什么click事件的preventDefault()也会阻止我的表单提交?

来自分类Dev

为什么我的表单的提交按钮不起作用?

来自分类Dev

为什么我的表单提交并忽略验证?

来自分类Dev

为什么我在 Spring 提交表单后得到空对象?

来自分类Dev

为什么将提交按钮命名为“ submit”,我的表单却不提交?

来自分类Dev

为什么我的“提交”按钮不提交表单数据?-HTML /节点

来自分类Dev

为什么当我按下“提交”按钮时,表单没有提交?

来自分类Dev

Django:为什么我的图像字段表单无法验证?

来自分类Dev

为什么我无法在angularJS的ngInclude内访问表单对象?

来自分类Dev

为什么我的JavaScript无法循环播放

来自分类Dev

为什么我的JavaScript无法从php运行?

来自分类Dev

为什么我的JavaScript函数无法运行?

来自分类Dev

为什么我的JavaScript无法运作?

来自分类Dev

为什么我的基本javascript无法运行?

来自分类Dev

为什么我的JavaScript无法从php运行?

来自分类Dev

为什么我无法删除对象 (JavaScript)?

来自分类Dev

为什么我的dropzone JavaScript表单不起作用?

Related 相关文章

  1. 1

    为什么我的JavaScript表单无法提交?

  2. 2

    JavaScript:为什么我的表单不提交?

  3. 3

    为什么调用此Javascript函数提交我的表单?

  4. 4

    为什么我的Javascript无法在提交时添加数据?

  5. 5

    为什么我不想提交表单?

  6. 6

    为什么我的dropzone JavaScript表单无法正常工作?

  7. 7

    为什么我的表单提交事件监听器无法正常工作

  8. 8

    使用JavaScript提交表单-为什么不从表单获取值?

  9. 9

    为什么我无法成功更新表单?

  10. 10

    为什么Jquery表单提交事件无法触发?

  11. 11

    为什么我的表单在页面加载时自动提交?

  12. 12

    为什么我的表单提交仍然刷新页面?

  13. 13

    为什么click事件的preventDefault()也会阻止我的表单提交?

  14. 14

    为什么我的表单的提交按钮不起作用?

  15. 15

    为什么我的表单提交并忽略验证?

  16. 16

    为什么我在 Spring 提交表单后得到空对象?

  17. 17

    为什么将提交按钮命名为“ submit”,我的表单却不提交?

  18. 18

    为什么我的“提交”按钮不提交表单数据?-HTML /节点

  19. 19

    为什么当我按下“提交”按钮时,表单没有提交?

  20. 20

    Django:为什么我的图像字段表单无法验证?

  21. 21

    为什么我无法在angularJS的ngInclude内访问表单对象?

  22. 22

    为什么我的JavaScript无法循环播放

  23. 23

    为什么我的JavaScript无法从php运行?

  24. 24

    为什么我的JavaScript函数无法运行?

  25. 25

    为什么我的JavaScript无法运作?

  26. 26

    为什么我的基本javascript无法运行?

  27. 27

    为什么我的JavaScript无法从php运行?

  28. 28

    为什么我无法删除对象 (JavaScript)?

  29. 29

    为什么我的dropzone JavaScript表单不起作用?

热门标签

归档