【问题标题】:Display prompt before ajax submitajax提交前显示提示
【发布时间】:2018-06-10 10:50:50
【问题描述】:

我试图让用户在 ajax 将数量提交到数据库之前输入更新数量的原因。

这是 jquery 代码,它将 qty 更改发送到更新 db 的 php 脚本。出于某种原因,我无法停止 ajax 并显示提示以供用户显示,以便他可以写下他更新数量的原因。谁能告诉我为什么没有显示提示?

<form name="form1" id="form1" method="POST" action="update_qty.php">
<input type="text" name="update_qty" class="update_qty" id="qty" value="<?php echo $sales_value['qty'] ?>"><?php echo ' Kom'; ?>
<input type="hidden" name="article_id" id="article_id" value="<?php echo $sales_value['article_id']; ?>">
<input type="hidden" name="sales_plan_id" id="sales_plan_id" value="<?php echo $sales_plan_id; ?>">
<input type="hidden" name="product_mix_id" id="product_mix_id" value="<?php echo $product_mix_id; ?>">
</form>

    //Update qty on article
$(document).ready(function() {

    $('.update_qty').on('change', function() {

        var message = prompt("Upišite razlog za izmjenu količine:");
        alert(message);
        //e.preventDefault();
        var article_id = $("#article_id").val();
        var sales_plan_id = $("#sales_plan_id").val();
        var update_qty = $(this).val();
        var product_mix_id = $("#product_mix_id").val();


        if (message != "" || message != NULL) {
            $.ajax({
                type:'POST',
                url:'update_qty.php',
                data:{ article_id: article_id, sales_plan_id: sales_plan_id, update_qty: update_qty, product_mix_id: product_mix_id, message: message },
                success:function(data) {
                    alert(data);
                }
            });
        } else {
            e.PreventDefault();
            return false;
        }

    });

});

【问题讨论】:

  • 您的代码运行良好 here。控制台有错误吗?
  • 没有错误,这就是我困惑的原因。
  • 如果你在//e.preventDefault();之前添加一个console.log("hello");,模糊时你在控制台看到了吗?
  • 是的,我可以看到。如果我将事件更改为“更改”而不是显示提示但仅针对第一行,这很奇怪。什么时候事件“模糊”而不是根本不显示?
  • 嗯...元素是什么?是&lt;input&gt;吗?

标签: jquery ajax prompt


【解决方案1】:

使用beforesend 尝试这样的操作。

更新:

    $(document).ready(function() {
var message;

      $('#update_qty').on('blur', function() {

    //e.preventDefault();
    var article_id = $("#article_id").val();
    var sales_plan_id = $("#sales_plan_id").val();
    var update_qty = $("#update_qty").val();
    var product_mix_id = $("#product_mix_id").val();



      $.ajax({
        type:'POST',
        beforesend:con(),
        url:'update_qty.php',
        data:{ article_id: article_id, sales_plan_id: sales_plan_id, update_qty: update_qty, product_mix_id: product_mix_id },
        success:function(data) {
          alert(data);
        }
      });


  });

});

function con(xhr){
    message=prompt('enter reason');
    if(message==''){
     xhr.abort();

     }
    }

【讨论】:

  • 否,不显示提示。它转到 update_qty.php
  • 错误地我使用了; 而不是: 并且通过更改这个太旧的方法将无法工作,所以使用更新的工作方法
猜你喜欢
  • 2012-02-10
  • 2016-11-18
  • 2020-01-11
  • 2012-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多