Javascript 如何在表单通过ajax验证和提交后禁用或隐藏提交按钮?

Javascript 如何在表单通过ajax验证和提交后禁用或隐藏提交按钮?,javascript,jquery,ajax,forms,ecmascript-6,Javascript,Jquery,Ajax,Forms,Ecmascript 6,需要一个脚本在验证后禁用或隐藏提交按钮,并由ajax提交100%表单 当前代码: <script> function AjaxFormRequest(result_id,formUkrposhta,url) { jQuery.ajax({ url:url, type:"POST", dataType:"html", data:jQuery("#"+formUkrpo

需要一个脚本
在验证后禁用
隐藏
提交按钮,并由
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>

函数AjaxFormRequest(结果\u id、formUkrposhta、url){
jQuery.ajax({
url:url,
类型:“POST”,
数据类型:“html”,
数据:jQuery(“#”+formUkrposhta).serialize(),
beforeSend:function(){
$(“#messegeUkrResult”).html('Сжжжжжаааааааааа;
$(“#发送”).prop('disabled',true);//禁用按钮
},
成功:功能(响应){
$(“#发送”).prop('disabled',false);//启用按钮
document.getElementById(result\u id).innerHTML=response;
},
错误:函数(响应){
document.getElementById(result_id).innerHTML='

; } }); $(':input','#formUkrposhta') .not(“:按钮,:提交,:重置,:隐藏”) .val(“”) .removeAttr('checked') .removeAttr(“选定”); }


但是什么也没发生!在
success
send之后,按钮未被禁用。甚至更多。。。需要
submit
按钮隐藏在100%
success
发送后以及通过php脚本处理后(而不是在错误或其他错误之后)。。。对不起,我的英语不好,非常感谢大家。让力量与你同在

> P>你可能想考虑这个代码:

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');
}
函数AjaxFormRequest(结果\u id、formUkrposhta、url){
log(“触发了Ajax表单请求”);
jQuery.ajax({
url:url,
类型:“POST”,
数据类型:“html”,
数据:jQuery(“#”+formUkrposhta).serialize(),
beforeSend:function(){
log(“发送前触发”);
$(“#messegeUkrResult”).html('Сжжжжжаааааааааа;
$(“#发送”).prop('disabled',true);//禁用按钮
},
成功:功能(响应){
日志(“成功触发:”,响应);
$(“#发送”).prop('disabled',false).hide();//启用按钮并隐藏它
$(“#”+result_id).html(响应);
},
错误:函数(响应){
日志(“错误触发:”,响应);
$(“#”+结果id).html('p class=“wbsn font futuranew wbsn-font-20 wbsn text deep orange”style=“text sahdow:0 2px 1px#fff;”“>;
}
});
$(':input','#formUkrposhta')
.not(“:按钮,:提交,:重置,:隐藏”)
.val(“”)
.removeAttr('checked')
.removeAttr(“选定”);
}

这会将
.hide()
添加到
success

中的按钮,看起来您在启动ajax时禁用了该按钮,并在返回时启用它。是否将响应放入元素中?这是一个发生得如此之快以至于你看不到的简单案例吗?如果需要,可以使用Chrome引入延迟。任何控制台错误?可以使用onclick()而不是onsubmit()。我想你的问题可以通过onclick()@mahdikodabandello解决。。。您的示例不感兴趣,因为它已被禁用,甚至表单也已禁用errors@Twisty... 一切都好。。。没有错,对不起。。但是没有什么是最好的。。。但按钮隐藏甚至形式错误。。。它很害羞((你可以在这里看到:…你可以点击按钮,即使表单是空的,它也会隐藏(@СцццццСццццццццццццццццццц1094Preload.js:4:405但是这个函数按预期工作,Ajax被触发,按钮被隐藏。如果你需要执行验证,你需要添加。添加什么?抱歉,我看不到控制台错误…如果你看到向上按钮和左右飞行按钮-所以一切都很好。