簡體   English   中英

Ajax表單發送數據2次

[英]Ajax form send data 2 times

當我發送表格時,插入數據並發送電子郵件大約2次,而不僅僅是一次。

怎么了

成功時,我為按鈕設置了fadeout ,因此用戶無法單擊它兩次。 這樣不好嗎?

<form class="form-horizontal" id="AjanlatForm" method="post">
          <div class="form-group">
            <label class="col-md-3 control-label ajanlat_label" >Az Ön neve:</label>
            <div class="col-md-8">
              <input id="AjanlatNev" name="AjanlatNev" type="text" class="form-control input-md">
            </div>
          </div>
          <div class="form-group">
            <label class="col-md-3 control-label ajanlat_label" >E-mail címe:</label>
            <div class="col-md-8">
              <input id="AjanlatEmail" name="AjanlatEmail" type="text" class="form-control input-md">
            </div>
          </div>
          <div class="form-group">
            <label class="col-md-3 control-label ajanlat_label" >Telefonszáma:</label>
            <div class="col-md-8">
              <input id="AjanlatTel" name="AjanlatTel" type="text" class="form-control input-md">
            </div>
          </div>
          <div class="form-group">
            <label class="col-md-3 control-label ajanlat_label" >Szállítási cím:</label>
            <div class="col-md-8">
              <input id="AjanlatCim" name="AjanlatCim" type="text" class="form-control input-md">
            </div>
          </div>
          <div class="form-group">
            <label class="col-md-3 control-label ajanlat_label" >Mennyiség:</label>
            <div class="col-md-8">
              <div class="input-group">
                <input type="text" class="form-control" id="AjanlatMennyiseg" name="AjanlatMennyiseg">
                <span class="input-group-btn">
                <select class="btn selectBtn" id="AjanlatMennyisegTipus" name="AjanlatMennyisegTipus">
                  <option  value="Darab">Darab</option>
                  <option  value="Kamion">Kamion</option>
                  <option  value="Raklap">Raklap</option>
                  <option  value="Tekercs">Tekercs</option>
                  <option  value="Zsák">Zsák</option>
                  <option  value="cm">cm</option>
                  <option  value="m">m</option>
                  <option  value="m2">m2</option>
                  <option  value="m3">m3</option>
                </select>
                </span> </div>
            </div>
          </div>
          <div class="form-group">
            <label class="col-md-3 control-label ajanlat_label" >Üzenet:</label>
            <div class="col-md-8">
              <textarea name="AjanlatUzenet" id="AjanlatUzenet" rows="7" class="form-control input-md"></textarea>
            </div>
          </div>
          <div class="text-center">
            <input type="hidden" id="AjanlatTermekID" name="AjanlatTermekID" value="<?php echo $akcioId; ?>">
            <button type="button" id="kerdesButton" class="btn btn-default sidebar_button">Ajánlatkérés elküldése</button>
          </div>
          <div class="text-center">
            <div id="AjanlatResult"></div>
          </div>
        </form>

$("#AjanlatKeresBtn").click(function(e) 
{
    $('#AjanlatResult').hide();
    $("#AjanlatModal").modal("show");
    $('#kerdesButton').click(function(e)
    {
        e.preventDefault();
        var FormErros = [];
        var AjanlatNev = $('#AjanlatNev').val();
        var AjanlatEmail = $('#AjanlatEmail').val();
        var AjanlatTel = $('#AjanlatTel').val();
        var AjanlatCim = $('#AjanlatCim').val();
        var AjanlatMennyiseg = $('#AjanlatMennyiseg').val();
        var AjanlatUzenet = $('#AjanlatUzenet').val();
        var AjanlatTermekID = $('#AjanlatTermekID').val();
        if($.trim(AjanlatNev) == "") { FormErros.push("Nem adta meg a nevét."); }
        if($.trim(AjanlatEmail) == "") { FormErros.push("Nem adta meg az e-mail címét."); }
        if(AjanlatEmail != "")
        {
            if(validate_Email(AjanlatEmail) == false)
            {
                FormErros.push("Elképzelhető, hogy hibásan adta meg az e-mail címét.");
            }
        }
        if($.trim(AjanlatTel) == "") { FormErros.push("Nem adta meg a telefonszámát."); }
        if($.trim(AjanlatUzenet) == "") { FormErros.push("Nem írt semmilyen kérdést vagy üzenetet."); }
        if($.trim(AjanlatTermekID) == "") { FormErros.push("Hiányzik a termék ID."); }
        if(AjanlatTermekID != "")
        {
            if(!$.isNumeric(AjanlatTermekID))
            {
                FormErros.push("A termék ID nem szám típusú.");
            }
        }
        if($.trim(AjanlatCim) == "") { FormErros.push("Nem adta meg a szállítási címet."); }
        if($.trim(AjanlatMennyiseg) == "") { FormErros.push("Nem adta meg a termék(ek) mennyiségét."); }
        if(FormErros.length == 0 )
        {
            $.ajax({
                type: 'POST',
                cache: false,
                data: $('#AjanlatForm').serialize(),
                url: 'files/uj-ajanlatkeres.php',
                success: function(data)
                {
                    var result = $.trim(data);
                    $('#kerdesButton').fadeOut("slow"); 
                    $('#AjanlatResult').fadeIn( "slow" ).html('<div class="javascript_success">'+result+'</div>');  
                },
                error: function(jqXHR, errorType, errorThrown)
                {
                    alert(errorThrown);
                },
                complete: function()
                {
                    $('#AjanlatForm')[0].reset();
                    setTimeout(function()
                    {
                        $('#AjanlatModal').modal('hide');
                        $('#kerdesButton').fadeIn("slow");  
                        location.reload();
                    }, 5000)
                }
            });
        }
        else
        {
            $('#AjanlatResult').fadeIn( "slow" ).html('<div class="javascript_rror_div">'+(FormErros.join('<br/>'))+'</div>');
        }
    });
});

我用location.href解決了這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM