javascript
  • jquery
  • jquery-ui
  • dialog
  • prompt
  • 2012-05-22 31 views 0 likes 
    0

    我想模擬jQuery UI對話框的內部javascript函數提示。 幾乎完美的工作 - 只是一個小錯誤:-)jQuery UI對話框 - 文字沒有被選中第二次顯示

    當對話框第二次顯示(沒有頁面重新加載)輸入字段中的文本未選中 - 爲什麼。

    我用這個代碼:

    function modalprompt(text, title, prompt, callback) { 
        var newDiv = $("<div title='" + title + "'/>"); 
    
        function okreply() { 
         newDiv.dialog("close"); 
         if (callback) callback($("#promptid").val()); 
        } 
    
        function cancelreply() { 
         newDiv.dialog("close"); 
         if (callback) callback(false); 
        } 
        newDiv.keyup(function (e) { 
         if (e.keyCode == 13) { 
          okreply(); 
         } 
        }); 
        /* 
        newDiv.focus(function() 
        { 
        this.select(); 
        }); 
        */ 
        var htmltext = "<p>" + text + "</p>"; 
        htmltext += "<input id='promptid' type='text' name='promptid' value='" + prompt + "' style='width: 100%; box-sizing: border-box; -webkit-box-sizing:border-box; -moz-box-sizing: border-box;'>"; 
        newDiv.html(htmltext).dialog({ 
         modal: true, 
         width: 480, 
         show: "blind", 
         hide: "blind", 
         focus: function (event, ui) { 
          $("#promptid").select(); 
         }, 
         open: function (event, ui) { 
          $("#promptid").select(); 
         }, 
         create: function (event, ui) { 
          $("#promptid").select(); 
         }, 
         buttons: [{ 
          text: $.alerts.okButton, 
          click: function() { 
           okreply(); 
          } 
         }, { 
          text: $.alerts.cancelButton, 
          click: function() { 
           cancelreply(); 
          } 
         }] 
        }); 
    } 
    

    你可以在這裏測試它自己:http://pcrypt.dk/dev/login.php?logout

    只需激活鏈接「ModalPrompt試驗」 2倍

    必須是與事實的東西第二次顯示對話框已經創建。所有$(「#promptid」)。select();呼叫沒有任何結果,所以事情必須改變這種事後?

    預先感謝您! 尼

    回答

    0

    OK,我不知道爲什麼它不DOWS工作,而是添加此事件處理程序:

    close: function(event, ui) { newDiv.remove(); }, 
    

    的伎倆。所以不知何故,當有更多的創建一個div選定的調用去第一個div,並不影響顯示的對話框。

    相關問題