2014-05-07 80 views
0

我對JavaScript很熟悉,但是對於jQuery來說很新,而且現在非常失落。我意識到這個問題之前已經被問到過,但我不清楚如何解決這個問題。我正在用提交按鈕創建一個對話框。當點擊提交按鈕時,它應該指向函數'getUsername()'。我在JavaScript中測試了代碼,並且成功地運行了它,但無法通過jQuery對話框獲得相同的結果。對話框顯示文本輸入和提交按鈕,但單擊該按鈕不會產生任何結果。jQuery:無法讓提交按鈕正常工作

這是html代碼:

<body onload="showDialog()"> 
     <form id="usernameInput" action="" onsubmit="return getUsername()"> 
      <br><br> 
      <input type="text" id="usernameBox" required> 
      <input type="submit" value="Start chatting!"> 
     </form> 
    </div> 
</body> 

,這是腳本:

function showDialog(){ 
     $(document).ready(function(){ 
     $("form").dialog({ 
      open: function() { 
      $(this).find("[type=submit]").hide(); }, 
      title: 'Enter username', 
      width: 500, 
      height: 300, 
      modal: false, 
      buttons: [{ 
       text: "Start chatting!", 
       click: $.noop, 
       type: "submit" 
      } 
      ] 
     }); 

    });  
    } 
+0

其中是getusername ?? –

+1

當然,按鈕不會做任何事情,您將'$ .noop'作爲它的'click'處理函數傳遞。 –

+0

你隱藏了按鈕'''$(this).find(「[type = submit]」).hide();''' – viyancs

回答

2

因爲提交按鈕的形式建立,因此自動錶單提交將無法工作

function showDialog() { 
    $(document).ready(function() { 
     $("form").dialog({ 
      open: function() { 
       $(this).find("[type=submit]").hide(); 
      }, 
      title: 'Enter username', 
      width: 500, 
      height: 300, 
      modal: false, 
      buttons: [{ 
       text: "Start chatting!", 
       click: function(){ 
        $("form").submit() 
       }, 
       type: "submit" 
      }] 
     }); 

    }); 
} 

查看dom結構

DOM of the Dialog

演示:Fiddle

+0

它的工作原理!非常感謝。 – user2781042