0

クリックしたら送信ボタンを無効にしたいのですが、以下のように説明させていただきます

  1. フォーム送信時の検証はajax呼び出しを使用して行われ、送信ボタンは次を使用して無効になります .attr("disabled",true);

  2. 応答が「失敗」の場合(つまり、検証が失敗した場合) .attr("disabled",false)、ajax応答を使用してボタンを再度クリックできます

これはFFとクロームでは完全に正常に機能しますが、IE8ではボタンを押すたびに無効化を有効にする効果が表示されます(ボタンをクリックすると正常で、無効のように表示されます)。IE8でこの瞬間的な外観の変化を望まないでください。

.attr("disabled","disabled");を使用し.removeAttr("disabled");て無効にしたり有効にしたりするなどの提案も試しました。コードスニペット:-

$("#submitBtn").click(function(event) {
    event.preventDefault();
    $("#submitBtn").attr('disabled',true);
    dataToPost = $("#Form").serialize();
    $.ajax({
        type: "POST",
        url: 'FormValidation',
        data: dataToPost ,
        success: function(response){
            if(response.status=='FAIL')
            {
                $("#submitBtn").attr('disabled',false);
                 //Some code
          }
             else{
        /* submit the form to if validation is successful */
                saveData(dataToPost);
            }
4

2 に答える 2

2

ボタンを無効にする代わりに、クリック動作を防止してみませんか?これを行う1つの方法は、次のようなことを行うことです。

var waitingForAjax = false;

$('yourButton').click(function(e){
    if (waitingForAjax) {
        return false;
    }

    waitingForAjax = true;
    // ajax call
});

その後、ajaxで失敗して再び設定waitingForAjaxfalseれます。

于 2012-07-05T15:34:41.227 に答える
1

残念ながら、disabled属性を使用すると、何を試しても、IEはデフォルトでテキストの色を灰色にし、奇妙な白い影を付けます...それでも他のすべてのスタイルは機能します。:-/ここで答えたように。

于 2012-09-13T06:21:11.130 に答える