在表单验证并由ajax提交后,如何禁用或隐藏“提交”按钮?

时间:2018-09-27 17:25:03

标签: javascript jquery ajax forms ecmascript-6

需要一个脚本,disablehide在验证后提交按钮,并由ajax提交100%的表单。

当前代码:

<script>
    function AjaxFormRequest(result_id,formUkrposhta,url) {
        jQuery.ajax({
            url:url,
            type:"POST",
            dataType:"html",
            data:jQuery("#"+formUkrposhta).serialize(),
            beforeSend: function() {
                $("#messegeUkrResult").html('<span class="wbsn-padding-0">Секунду пожалуйста ...</span>');
                $("#send").prop('disabled', true); // disable button
            },
            success:function(response) {
                $("#send").prop('disabled', false); // enable button
                document.getElementById(result_id).innerHTML = response;

            },
            error: function(response) {
                document.getElementById(result_id).innerHTML = '<p class="wbsn-font-futuranew wbsn-font-20 wbsn-text-deep-orange" style="text-sahdow:0 2px 1px #fff;">Возникла ошибка при заказе. Попробуйте еще раз.</p>';
            }
         });

         $(':input', '#formUkrposhta')
            .not(':button, :submit, :reset, :hidden')
            .val('')
            .removeAttr('checked')
            .removeAttr('selected');
    }
</script>

但是什么也没发生!并且disabled发送后没有success按钮。甚至更多...需要submit按钮在100%success发送后以及经过php脚本处理后才隐藏(不在错误或其他情况下)...对不起,我的英语不好,谢谢大家。让力量与您同在!

1 个答案:

答案 0 :(得分:1)

您可能需要考虑以下代码:

function AjaxFormRequest(result_id,formUkrposhta,url) {
  console.log("Ajax Form Request Triggered.");
  jQuery.ajax({
    url: url,
    type: "POST",
    dataType: "html",
    data: jQuery("#" + formUkrposhta).serialize(),
    beforeSend: function() {
      console.log("Before Send Triggered.");
      $("#messegeUkrResult").html('<span class="wbsn-padding-0">Секунду пожалуйста ...</span>');
      $("#send").prop('disabled', true); // disable button
    },
    success:function(response) {
      console.log("Success Triggered:", response);
      $("#send").prop('disabled', false).hide(); // enable button & Hide it
      $("#" + result_id).html(response);
    },
    error: function(response) {
      console.log("Error Triggered:", response);
      $("#" + result_id).html('<p class="wbsn-font-futuranew wbsn-font-20 wbsn-text-deep-orange" style="text-sahdow:0 2px 1px #fff;">Возникла ошибка при заказе. Попробуйте еще раз.</p>');
    }
  });
  $(':input', '#formUkrposhta')
    .not(':button, :submit, :reset, :hidden')
    .val('')
    .removeAttr('checked')
    .removeAttr('selected');
}

这会将.hide()添加到success中的按钮。