2016-12-18 3 views
1

Ich benutze MVC - in einer meiner Ansichten habe ich eine Schaltfläche, die ich den Wert auf klicken soll. Hier ist der Button-Code in der Ansicht:MVC Javascript Button Wert falsch

<div class="col-md-10"> 
    <input type="button" value="Yes" class="btn btn-default" id="CanOrder" /> 
</div> 

Und das ist mein Javascript für sein Click-Ereignis:

<script> 
    $('#CanOrder').click(function() { 
     if ($(this).val('Yes')) { 
      alert("button says Yes"); 
      $(this).val('No'); 
     } 
     else { 
      alert("button says No"); 
      $(this).val('Yes'); 
     } 
    }); 
</script> 

Gleich am Anfang, das funktioniert ... die Schaltfläche zeigt "Ja", und Wenn ich darauf klicke, bekomme ich den Alarm "Knopf sagt Ja" und dann ändert sich der Wert zu "Nein".

Aber danach, was passiert ist, wenn ich es anklicke, ändert es sofort den Text auf der Schaltfläche auf "Ja", dann bekomme ich die Warnung "Knopf sagt ja", und es ändert sich zurück zu "Nein" .

Wenn ich versuche, die Seite ohne die Warnungen zu laufen, sehe ich nicht einmal wieder auf "Ja" zurück - es verhält sich so, als würde ich es beim ersten Mal klicken und dann immer nur "Nein" sagen darauf danach.

Was mache ich falsch?

Vielen Dank!

+1

Ich glaube, dass Sie Ihre Gleichheitskontrolle korrigieren müssen ... val() === "Ja". Schlagen Sie die Verwendung von jquery val() nach, sieht so aus, als ob Sie nicht richtig verwenden –

Antwort

1

Um den Wert von CanOrder Sie Ihre if-Anweisung müssen zu prüfen, korrigieren:

<script> 
    $('#CanOrder').click(function() { 
     if ($(this).val() === "Yes") { 
      alert("button says Yes"); 
      $(this).val('No'); 
     } 
     else { 
      alert("button says No"); 
      $(this).val('Yes'); 
     } 
    }); 
</script> 

Sie können here mehr über die val Methode lernen.