2016-05-17 4 views
1

Meine Forderung nicht zu deaktivieren sind:ng-disabled ist nicht in Chrom .Taste arbeitet in Winkel

  1. Submit-Button deaktivieren sollten, bevor alle Felder validieren.
  2. Sobald alle Felder validiert wurden, sollte die Schaltfläche "Senden" aktiviert sein, damit Benutzer darauf klicken können.
  3. Sobald der Benutzer auf die Schaltfläche klicken, sollte die Schaltfläche Senden erneut deaktiviert werden.

I unten Kode:

<button type="submit" class="btn" data-ng-disabled="signup.$invalid" ng-disabled="isDisabled" data-ng-click="saveNewUser()">Submit</button> 

und in Controller habe ich verwendet

$scope.saveNewUser = function() 
        $scope.isDisabled = true; 

wenn alle Felder nicht validiert und Fehler aus

if(genderError || stateError || dobError) 
        $scope.isDisabled = false; 

Above Fall arbeitet gut in IE und Firefox, aber es funktioniert nicht in Chrome.
Ich habe das Formular in Chrome geöffnet, Schaltfläche zeigt nicht deaktiviert, während es in IE und Firefox deaktiviert angezeigt wird sogar Formular noch nicht abgeschickt.

Danke.

+0

Können Sie bitte eine Geige oder Arbeitsbeispiel mit Ihrem unempfänglich Code zur Verfügung stellen? – Fizzix

+0

Außerdem sollten Sie nicht zwei 'ng-disabled'-Attribute referenzieren, wie das, was Sie gerade machen' data-ng-disabled = "Anmeldung. $ Invalid" ng-disabled = "isDisabled" '. Stattdessen einfach "ng-disabled =" registrieren. $ Invalid || isDisabled "' – Fizzix

Antwort

0

Ich habe ein einfaches Beispiel mit Codepen eingerichtet und es funktioniert in Firefox, Safari und Chrome auf Mac.

Controller:

var app = angular.module('app', []); 
app.controller('myctrl', ['$scope', function($scope){ 
    var genderError = false; 
    var stateError = false; 
    var dobError = false; 

    $scope.saveNewUser = function() { 
    $scope.isDisabled = true; 

    if(genderError || stateError || dobError) { 
     $scope.isDisabled = false; 
    } 
    } 
}]); 

HTML:

<form name="signup"> 
    <button type="submit" class="btn" ng-disabled="signup.$invalid || isDisabled" ng-click="saveNewUser()">Submit</button> 
</form> 

Ich glaube, Ihr Fehler war höchstwahrscheinlich sowohl data-ng-disabled und ng-disabled auf Ihre Schaltfläche verweist. Browser könnten dies auf verschiedene Arten interpretieren. Stattdessen habe ich sie zusammen auf der Schaltfläche zu einem einzelnen Attribut wie ng-disabled="signup.$invalid || isDisabled" zusammengeführt.

WORKING EXAMPLE

+0

Super !! Vielen Dank. Es hat funktioniert. – Pankaj