2016-04-20 5 views
0

Zu Beginn meiner HTML-Seite voraus, die Definition meines Dialogs:Mein jQuery UI-Dialog öffnet sich nicht, wenn nicht durch eine Warnung

<script type="text/javascript"> 
$(function() { 
    $("#dialog-confirm").dialog({ 
    autoOpen: false, 
    resizable: true, 
    height:180, 
    width:300, 
    modal: true, 
    buttons: { 
     "Yes": function() { 
     $(this).dialog("close"); 
     }, 
     "No": function() { 
     $(this).dialog("close"); 
     } 
    } 
    }); 
}); 
</script> 

<div id="dialog-confirm" title="Test dialog"> 
    <p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>You can press Yes or No</p> 
</div> 

Und nachdem am Ende meiner HTML-Seite, der Ort, in dem ich meinen Dialog öffnen möge (input ist eine Eingabe von Id bekam):

inputText.addEventListener("keydown", function() { 
    if (event.which == 13 || event.which == 10) 
    { 
    alert("test"); 
    $(document).ready(function() { 
     $("#dialog-confirm").dialog("open"); 
    }); 
    } 
}); 

Mein Problem ist, wenn ich mein Dialog nicht die alert("test"); setze, wird nicht geöffnet, wenn ich in meinem Input eingeben eingeben .

Was kann ich tun, um den Alarm zu entfernen und den ordnungsgemäßen Betrieb aufrechtzuerhalten?

Antwort

0

Sie sollten das Standardverhalten der Warnung verhindern, indem dies zu tun:

inputText.addEventListener("keydown", function() { 
    event.preventDefault(); 
    if (event.which == 13 || event.which == 10) 
    { 
    alert("test"); 
    $(document).ready(function() { 
     $("#dialog-confirm").dialog("open"); 
    }); 
    } 
}); 

den Schlüssel 13 und 10 sind für den Schlüssel eingeben, wenn Sie nicht das Standardverhalten vermeiden, dann, wenn der Dialog anzeigen Die erste Schaltfläche wird fokussiert und die Eingabetaste löst den Klick auf diese Schaltfläche aus.

Also, verhindern Sie den Klick, indem Sie eine event.preventDefault();

tun