Frage

Wenn wir verwenden Javascript Prompt Box so etwas wie dieses

 var ur_name = prompt("Enter Name");

Wir werden zwei Arten von Werten in diesem Fall haben:

  1. Wert eingegeben durch den Benutzer.
  2. Zweiter Wert kann NULL sein, wenn der Benutzer drücken Sie CANCEL oder wenn er drückt ESCAPE Key. Richtig ...!

Jetzt Das Problem, das ich bin Bewurf ist: Wie in Impromptu-Plugin von JQuery Link-Text

-Code ausgeführt wird perfekt, wenn Benutzer Abbrechen-Taste einen Wert ODER drücken Sie die Eingabetaste wird

<script type='text/javascript'>
function test()
 {
var txt = 'Please enter your name:<br /> <input type="text" id="alertName" name="alertName" value="name here" />';

 $.prompt(txt,{
callback: mycallbackform,
buttons: { OK: 'Hello', Cancel: 'Good Bye' }
  });
}

 function mycallbackform(v,m,f){
  if(v=="Hello")     
   $.prompt("Stack Over flow User:"+' ' + f.alertName);
  }
 </script>

Ursache in diesem Szenario Ich erhalte Abbrechen oder OK-Taste gedrückt Ereignisse, aber wenn Benutzer drücken Sie ESCAPE Taste mycallbackform wird nicht genannt werden ...

War es hilfreich?

Lösung

In der Vergangenheit habe ich immer die jQueryUI .dialog Funktion Benutzerdialoge zur Verfügung zu stellen, die die closeOnEscape Option hat. ( http://jqueryui.com/demos/dialog/ )

Wenn Sie Ihr Herz auf improvisierte Verwendung sollte es ziemlich einfach, ein Ereignis zu implementieren Umgang mit der jQuery-Funktion keyup mit -

$(document).keyup(function(event){
    if (event.keyCode == 27) {
        $(".prompt").hide();
    }
});
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top