Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Кнопка по-умолчанию в JQuery UI модальном диалоге (https://javascript.ru/forum/jquery/50716-knopka-po-umolchaniyu-v-jquery-ui-modalnom-dialoge.html)

Konung1973 08.10.2014 18:34

Кнопка по-умолчанию в JQuery UI модальном диалоге
 
Здравствуйте!
У меня вопрос по JQuery UI, но отдельной темы не нашел, поэтому пишу сюда.
Проблема у меня следующая: захотелось мне в модальном диалоге сделать кнопку по-умолчанию. Ну я и сделал:
<script>
    $(function() {
        var bOk = false;
    	$( "#dlgLogin" ).dialog({
    		autoOpen: true,
    		height: 200,
    		width: 300,
    		modal: true,
    		buttons: {

    	          "Ok": function() {
                    var dataObj = {"txtPassword"   : $("#txtPassword").val()};

                    $.ajax({
                          type: "POST",
                          url:  "spra/users/CheckPassword.jsp",
                          data: dataObj,
                          dataType: "JSON",
                          success: function(data){
                                     if (data.bOk == "1"){
                                       $("#lblUserName").html(data.cName);
                                       $("#txtCurrentUserId").val(data.nId);
                                       bOk = true;
                                       $("#dlgLogin").dialog( "close" );
                                     }else{
                                       $("#lblError").html("Error! Try again.");
                                     }
                                   }
                    });
    			}
    		},
 [B]           open: function() {
                $("#dlgLogin").keypress(function(e) {
                    if (e.keyCode == $.ui.keyCode.ENTER) {
                      $(this).parent().find('.ui-dialog-buttonpane button:first').click();
                    }
                  });
            },
 [/B]           beforeClose: function( event, ui ) {
                if (!bOk){
                  return false;
                }
            }
    	});

    });
</script>

<div id="dlgLogin" title="Login">
  <form>
   	<fieldset>
   		<label for="txtPassword">Password:</label>
   		<input type="password" name="txtPassword" id="txtPassword" value="" class="text ui-widget-content ui-corner-all" />
        </br><span style="color:RED" id="lblError">&nbsp;</span>
   	</fieldset>
  </form>
</div>

CheckPassword.jsp
<%
///// ...................

out.print("{");
out.print("\"nId\" : \"" + nUserId + "\",");
out.print("\"cName\" : \"" + cUserName + "\",");
out.print("\"cLogin\" : \""+ cUserLogin+"\",");
out.print("\"bOk\" : \""+ nOk +"\"");
out.print("}");
///.......................
%>
Только не заработалО ОНО.
Когда я ввожу пароль и жму мышкой "Ok" - всё работает.
Но когда я ввожу пароль и жму <Enter>, происходит переход к обработчику события нажатия кнопки, производится ajax-вызов CheckPassword.jsp... И всё падает в произвольном месте (смотрю под отладчиком IDEA).
Подскажите, пожалуйста, кто и как устанавливал в JQuery UI Dialog кнопки по-умолчанию.

Viral 08.10.2014 18:37

Konung1973,
Почитай


Часовой пояс GMT +3, время: 20:02.