2016-04-13 4 views
0

Ich bin ziemlich neu in AngularJS, also brauche ich deine Hilfe. Wie überprüfe ich per Knopfdruck, wenn der Benutzer aus Dropdown ausgewählt hat? Ich habe zwei Dropdowns und ich muss überprüfen, ob der Benutzer aus einem der beiden Dropdown-Menüs ausgewählt hat. Wenn er die Submit-Schaltfläche nicht auswählt und auf klickt, wird ein Modal-Befehl angezeigt.AngularJS erkennt, ob sich das Dropdown-Menü durch Klicken geändert hat

Das ist, was ich bisher versucht habe:

HTML:

<select id="supplier" name="supplier" class="form-control" 
    ng-model="searchFormData.supplier" ng-change="changeMeChange()" 
    ng-options="supplier.company as supplier.company for supplier in suppliersObj"> 
</select> 

JS:

$scope.changeMeChange = function() { 
    alert('You changed me!'); 
}; 

aber dies nur meldet, wenn der Drop-Down geändert wird, aber nicht in der Taste klicken.

Irgendeine Idee, wie man das macht?

+0

Verwenden Sie 'ng-klicken' über' Button' Element und überprüfen Sie den Wert des 'Modells' – Rayon

+0

@RayonDabre Hallo Dank können Sie einen Beispielcode oder ein Tutorial zur Verfügung stellen? –

+2

Ihre Frage scheint mir unvollständig zu sein. Stellen Sie eine 'Geige' oder eine Demo zur Verfügung, um damit zu arbeiten. Wo ist' Auswahl' und Knopf? – Rayon

Antwort

0

Ich würde zwei Scope-Variablen für beide Drop-Downs mit ng-Modell festlegen, um den ausgewählten Wert zu speichern, dann in der Funktion für die NG-Klick der Schaltfläche können Sie beide Variablen überprüfen, um zu sehen, welchen Wert sie haben.

+0

Können Sie ein Beispiel-Snippet teilen? –

0

Da Ihr ng-model auf searchFormData.supplier zeigt, hat der Benutzer, wenn er eine Option auswählt, den ausgewählten Wert. So können Sie in Tasten nach dem tun klicken:

$scope.submitClick = function() { 
    if (!$scope.searchFormData.supplier){ 
    alert('You did not select supplier!'); 
    return false 
    } 
}; 
0

ng-click="myMethod()" mit Taste Mit Sie auf die Methode aufgerufen eingeben, wenn Sie klicken, und um zu sehen, ob es korrekt funktioniert, verwenden Sie console.log("hello world") und sehen Sie die Konsole Ihres Web-Browser, um zu sehen, ob er die Nachricht drucken; P

Beispielcode:

Ok ich dieses Beispiel-Code gemacht, wie es funktioniert (datos ist mein Controller)

-HTML

<select id="supplier" name="supplier" class="form-control" 
    ng-model="test.supplier" ng-change="changeMeChange()" 
    ng-options="item as item.name for item in datos.testS track by item.id"> 
</select> 
<button ng-click="datos.testSlack(test.supplier)">Check</button> 

-Controller

$scope.testSlack = function(data){ 
    console.log("go"); 
    console.log(data.name); 
    } 

Wir erhalten Daten von ng-Modell wählen, und wir setzen es als params auf das Verfahren der buton.

Mit Daten, die Sie den Wert der ausgewählten haben, wählen nur, wenn null ist, weil der Benutzer nicht nichts, ich hoffe, ich werde Ihnen helfen, P

+0

Hallo, wenn ich richtig verstehe, werde ich eine Methode für meine Schaltfläche erstellen und wie kann ich überprüfen, ob das Dropdown-Menü geändert hat? –

+0

Sie speichern die Rückgabe in ng-Modell, so dass Sie nur Ihr $ scope.ngModel sehen müssen, und vergleichen Sie die Werte oder sehen Sie, ob es Null ist, ich weiß nicht, ob Sie mich verstehen –

+0

ok sehen Sie es jetzt, Ich denke, es wird Ihnen helfen –

0

Versuchen Sie dies auf den Button klicken auslösen auf Auswahlfeld

0

Was ich verstanden habe ist, Sie suchen zu erkennen, hat Benutzer den Dropdown-Wert des Feldes oder nicht geändert. Also können Sie dafür die angulare form Validierung verwenden, wo Sie überprüfen können ob das Feld $dirty/$pristine oder nicht ist. Basierend auf diesem können Sie modalOR zeigen können bestimmte Funktion aufrufen.

Markup

<form name="myForm" ng-submit="mySubmit()"> 
    <select id="supplier" name="supplier" class="form-control" 
    ng-model="searchFormData.supplier" ng-change="changeMeChange(searchFormData.supplier, supplier)" 
    ng-options="supplier.company as supplier.company for supplier in suppliersObj"> 
    </select> 
    ...other fields... 
    <button type="button">Submit</button> 
</form> 

-Code

$scope.changeMeChange = function(field, supplier) { 
    //field.$pristine OR !field.$dirty will tell you does field has changed or not 
    if(!supplier && field.$pristine){ 
     //open modal from here. 
    } 
    else{ 
     alert('You changed me!'); 
    } 
}; 
0
<select ng-options="size as size.name for size in sizes" 
    ng-model="item" ng-change="update()"></select> 


$scope.changeMeChange = function() { 
    alert('You changed me!'); 
}; 

Sie auf diese Weise versuchen können, sobald Modell der Alarm

0

Sie müssen Ereignis binden, klicken, wird aufrufen ändern aber zu n zur Überprüfung der Drop-Down-Modellwerte.

Unten finden Sie Beispielcode:

HTML-Code für Schaltfläche:

<button data-ng-click="myFunction()">Click</button> 

Angular-Code: Funktion für Click-Ereignis Dropdown-Werte zu überprüfen.

$scope.myFunction = function() { 
    //Check model values of dropdown over here, based upon the result you can show prompt. 
    // You can access model value by scope variables. 
}; 

Hoffnung über Beispielcode hilft Ihnen, Ihr Problem zu lösen.

+0

Wie bezieht es sich auf Frage? –

+0

@PankajParkar - er muss die Dropdown-Werte auf der Schaltfläche "Senden" mit angularer JS überprüfen, damit er ein Klickereignis zur Schaltfläche hinzufügen und die Dropdown-Werte auschecken kann, wenn er nicht gefüllt ist, zeige dann die Eingabeaufforderung. Ich habe keinen vollständigen Code hinzugefügt, ich habe nur Beispielcode hinzugefügt. –

+0

aber er wollte überprüfen, wenn Dropdown-Wert geändert wird .. –

Verwandte Themen