0

jqueryフォームプラグインの送信ボタンを無効にしたいのですが、レスポンスが取得されたら有効にする必要があります。以下のコードを試していますが、onlick イベントでボタンを無効にするとすぐに送信が停止します。ボタンのクラスを変更することはできますが。

私は何を間違っていますか?

コードは次のようになります。

function timing(){
 d=Math.round(new Date().getTime() / 1000);
 $('input[name=timedate]').val(d);
 var btn1 = $('#post_global');  
 btn1.val('posting');
 btn1.removeClass('t_s').addClass('t_sDisabled');
 btn1.prop('disabled',true);    
  }

 (function() {
 $('form').ajaxForm({
dataType: 'json', 
beforeSubmit: validate,
success: processResponse

}); 
  })();  

 function processResponse(data) {
  document.getElementById('upfile').value = "";
  document.getElementById('fileinfo').innerHTML = "";
  document.getElementById('txt1').value="post anything...";
   var status = $('#status');   
if(data.errors == ""){
    status.hide().html(data.htmlResponse).fadeIn(1000);
} else{
alert(data.errors);
    }
var btn2 = $('#post_global');   
btn2.val('post');
btn2.removeClass('t_sDisabled').addClass('t_s');    
btn2.prop('disabled',false);
  }
4

1 に答える 1

0

これがあなたが探していると思う答えです。さらに必要な場合は、以下に必要なものをコメントしてください。

$("#btn2").click(function() {
$('#btn2').attr("disabled", true);
//Do the request here
$('#btn2').attr("disabled", false);}

もしかしてこれ?

function timing(){
 d=Math.round(new Date().getTime() / 1000);
 $('input[name=timedate]').val(d);
 var btn1 = $('#post_global');  
 btn1.val('posting');
 $('#btn2').attr("disabled", true);
  }

 (function() {
 $('form').ajaxForm({
dataType: 'json', 
beforeSubmit: validate,
success: processResponse

}); 
  })();  

 function processResponse(data) {
  document.getElementById('upfile').value = "";
  document.getElementById('fileinfo').innerHTML = "";
  document.getElementById('txt1').value="post anything...";
   var status = $('#status');   
if(data.errors == ""){
    status.hide().html(data.htmlResponse).fadeIn(1000);
} else{
alert(data.errors);
    }
var btn2 = $('#post_global');   
btn2.val('post');
$('#btn2').attr("disabled", false);
  }
于 2013-02-11T06:31:46.297 に答える