0

我有以下表格,其中包含一些我需要发送的数据。

<form action="http://localhost/sp/index.php/daily_operation/turn_close" method="post" accept-charset="utf-8" id="form" name="form" class="form_cash"><br />           <input type="hidden" id="total_amount" name="total_amount" value="0">

                  <div>
                  <fieldset class="fieldset">

                  <legend>Billetes</legend>
                  <div class="row_form_div">
                      <label for="hundred_amount">100</label>
                      <input type="text" id="hundred_amount" name="hundred_amount" class="billet"/>
                      <input type="hidden" id="hundred_denomination_id" name="hundred_denomination_id" value="1">
                  </div>

                  <div class="row_form_div">
                      <label for="fith_amount">50</label>
                      <input type="text" name="fith_amount" id="fith_amount"  class="billet"/>
                      <input type="hidden" id="fith_denomination_id" name="fith_denomination_id" value="2">
                  </div>

                  <div class="row_form_div">
                      <label for="twenty_amount">20</label>
                      <input type="text" name="twenty_amount" id="twenty_amount" class="billet"/>
                      <input type="hidden" id="twenty_denomination_id" name="twenty_denomination_id" value="3">
                  </div>

                  <div class="row_form_div">
                      <label for="ten_amount">10</label>
                      <input type="text" name="ten_amount" id="ten_amount" class="billet"/>
                      <input type="hidden" id="ten_denomination_id" name="ten_denomination_id" value="4">
                  </div>

                  <div class="row_form_div">
                      <label for="five_amount">5</label>
                      <input type="text" name="five_amount" id="five_amount" class="billet"/>
                      <input type="hidden" id="five_denomination_id" name="five_denomination_id" value="5">
                  </div>

                  <div class="row_form_div">
                      <label for="one_amount">1</label>
                      <input type="text" name="one_amount" id="one_amount" class="billet"/>
                      <input type="hidden" id="one_denomination_id" name="one_denomination_id" value="6">
                  </div>

                 </fieldset>
                 </div>
</form>

在发送之前,我需要询问表单数据的条件。我构建了一个 jquery ui 对话框来询问条件

<div id="dialog-confirm" title="&iquest;Cerrar turno con diferencia?">
            <p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;">
            </span>El desglose insertado no coincide con el total por concepto de operaciones. Esto significa que cerrar&aacute; el turno con diferencia. 
            &iquest;Est&aacute; seguro?</p>
        </div>

我用以下 JQuery 代码调用:

$( "#dialog-confirm" ).dialog({
    resizable: false,
    autoOpen:false,
    height:150,
    width:340,
    open:false,
    modal: true,
    buttons: {
        "No": function() {
            $( this ).dialog( "close" );
        },
        "Si": function() {
                $("#form").submit();
                $(this).dialog('close');
                }
        }
    }
});

这是为了发送表格中发布的数据,但没有任何反应。

我也尝试过用 Ajax 做到这一点

        "Si": function() {
                $("#form").submit();
                if (true) {
                    {
                        $.ajax({
                            type: "POST",
                            dataType: "json",
                            url: 'daily_operation/turn_close',
                            data: $("#form").serialize(), // serializes the form's elements.
                            success: function(data)
                            {
                            },
                            error: function(data) {
                                bValid = false;
                            }
                        });

                    }
                    $(this).dialog('close');
                }
        }

但仍然没有发送任何内容。

请你帮助我好吗?提前致谢...

4

2 回答 2

0

问题是您是尝试以传统方式发送它还是使用 AJAX

$("#form").submit();

这应该发送它,但存在一些问题(例如,IE 要求表单包含提交按钮!)。这种方法会产生很多问题。我建议使用 AJAX。开始尝试看看会发生什么。:

$.ajax({
                            type: "POST",
                            dataType: "json",
                            url: 'daily_operation/turn_close',
                            data: $("#form").serialize(), 
                            beforeSend : function(){
                                  alert($("#form").serialize());
                            },
                            success: function(data)
                            {
                                 alert(data);
                            },
                            error: function(data) {
                                bValid = false;
                            }
                        });
于 2012-10-31T20:19:03.267 回答
0

我知道这是一篇旧帖子,但我想我知道为什么表单没有提交。代替

$("#form").submit();

它应该是

$("#form")[0].submit();.

.submit()form是实际HTML 元素的内置 javascript 函数。它应该用于实际元素。在纯 JS 中:

document.getElementById("form").submit();

jQuery.submit()用于将函数附加到submit事件。像:

$("#form").submit(function() { 
   return true; 
});

在 jQuery 中,您可以使用.get()函数或数组索引来获取实际的 HTML 元素。所以这:

$("#form").get(0).submit();

也应该工作。

于 2013-10-20T03:42:14.643 回答