在event.preventDefault之后恢复提交

kek*_*o12 2 each jquery prompt event-handling twitter-bootstrap-3

我正在尝试实现一个简单的数据流,但必须有一些我没有得到的东西.

  • 我有一个有n行的表.
  • 每行都有自己的表单,其中包含提交按钮和隐藏输入.
  • 我希望用户单击按钮并显示提示.
  • 在此提示中,他可以插入日期.
  • 插入日期后,隐藏的输入值为选定日期,并提交表单.

这是我使用的代码没有任何成功:

<td>
    <form id="form_{{ document.id }}" class="form-fattura-saldata" action="my-file.php" method="post">
        <input type="hidden" class="data-pagamento" name="data-pagamento" value="">
        <button class="btn btn-default fattura_saldata" type="submit">Saldata</button>
    </form>
</td>
Run Code Online (Sandbox Code Playgroud)

和jquery代码:

var saldataFatturaChange = function(event) {
    event.preventDefault();
    var prompt = bootbox.prompt("Confermare la data di pagamento", function(result) {
        if (result === null) {
        } else {
            $('.data-pagamento').val(result);
        }
    });
    $('.bootbox-input').daterangepicker({
        startDate: new Date(),
        format: 'DD/MM/YYYY',
        singleDatePicker: true
    });
};

$('.form-fattura-saldata').each(function() {
    $(this).on('submit', saldataFatturaChange);
});
Run Code Online (Sandbox Code Playgroud)

主要问题是我可以阻止提交操作,但后来我不知道如何重新汇总该表单.并且我不知道在用户选择日期之后如何分配该表单的隐藏输入的值.

任何帮助将不胜感激.

ps我正在使用bootstrap,但这根本不相关.

kek*_*o12 6

这就是我解决问题的方法:

var saldataFatturaChange = function(event) {
    event.preventDefault();
    var currentTarget = event.target;
    var prompt = bootbox.prompt("Confermare la data di pagamento", function(result) {
        if (result === null) {
        } else {
            $(currentTarget).find('.data-pagamento').val(result);
            currentTarget.submit();
        }
    });
    $('.bootbox-input').daterangepicker({
        startDate: new Date(),
        format: 'DD/MM/YYYY',
        singleDatePicker: true
    });
};

$('.form-fattura-saldata').each(function() {
    $(this).on('submit', saldataFatturaChange);
});
Run Code Online (Sandbox Code Playgroud)

简单地说,事件有一个event.target,它是被触发事件的目标.这很容易实现.