2 Stimmen

Jquery Aktivieren einer Schaltfläche nach einiger Zeit

Dieser Code funktioniert nicht, er deaktiviert den Code und muss ihn nach einiger Zeit wieder aktivieren. Wie könnte ich das machen? Was könnte falsch sein? Ich mache das, um mehrfache Klicks zu vermeiden

<% Html.EnableClientValidation(); %>
    $(document).ready(function () {
        $('#form1').submit(function () {
            $('#btn').attr("disabled", "disabled");
            setTimeout('enableButton()', 50);
        });
        function enableButton() {
            $('#btn').removeAttr('disabled');
        }
    }); 

<% using (Html.BeginForm("Create","OrganizationGroups",FormMethod.Post,new {id="form1"}))

{%>
%>
<%= Html.ValidationSummary(false)%> 

    <%= Html.ActionLink("Zurück zur Liste", "ManageOrganizationGroup")%>

4voto

Nick Craver Punkte 609016

Sie können hier keinen String an setTimeout() übergeben, da die Funktion nicht global ist. Übergeben Sie stattdessen direkt eine Referenz auf die Funktion, ändern Sie also dies:

setTimeout('enableButton()', 50);

zu diesem:

setTimeout(enableButton, 50);

Im Allgemeinen versuchen Sie immer, dies zu tun, es wird viele Probleme vermeiden... wie das, mit dem Sie gerade konfrontiert sind.

1voto

andres descalzo Punkte 14719

Dies:

<% Html.EnableClientValidation(); %> 

function enableButton() {
   $('#btn').removeAttr('disabled');
}

$(document).ready(function () { 

   $('#form1').submit(function () { 
       $('#btn').attr("disabled", "disabled"); 
       setTimeout(enableButton, 50);
   });

});

oder das:

<% Html.EnableClientValidation(); %> 

$(document).ready(function () { 

   $('#form1').submit(function () { 

       var btn = $('#btn').attr("disabled", "disabled"); // Referenz auf #btn

       setTimeout(function() 
         {
            $(btn).removeAttr('disabled');
         }
      , 50);
   });

});

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X