2012-12-03 86 views
0

我正在開發一個JavaScript來檢測文本中的鏈接,並打開一個帶有三個按鈕「是」,「否」,「取消」的JqueryUI對話框。一切工作正常。當javascript檢測到文本中的鏈接時,會顯示對話框。 「否」和「取消」按鈕工作正常。我想在用戶點擊「是」按鈕時提交表單,但它不起作用。 這是我的HTML和Javascript代碼。JavaScript/jquery不是沒有提交表格

<script type="text/javascript"> 

function findUrls() 
{ 
var text = document.forms["myForm"]["text"].value; 

var source = (text || '').toString(); 

var urlArray = []; 

var url; 

var matchArray; 

// Regular expression to find FTP, HTTP(S) and email URLs. 
var regexToken = /\b(http|https)?(:\/\/)?(\S*)\.(\w{2,4})\b/ig; 

// Iterate through any URLs in the text. 
if((regexToken.exec(source)) !== null) 
{ 
    $(document).ready(function(){ 

      $("#dialog").dialog({ 
       autoOpen: false, 
       width: 400, 
       buttons: [ 
        { 
         text: "Yes", 
         click: function() { 
          $("#myForm").submit(); 
         } 
        }, 
        { 
         text: "No", 
         click: function() { 
          $(this).dialog("close"); 
         } 
        }, 
        { 
         text: "Cancel", 
         click: function() { 
          $(this).dialog("close"); 
         } 
        } 
       ] 
      }); 

      $("#dialog").dialog("open"); 

    }); 
} 

} 


function submitform() 
{ 
    document.forms["myForm"].submit(); 
} 
</script> 
<div id="dialog" title="Dialog Title"> 
<p>Tes Test Test.</p> 
<p><a href="javascript: submitform()">Submit</a></p> 
</div> 

<form name="myForm" id="myForm1" action="" onsubmit="return findUrls();"> 
<textarea name="text"></textarea> 
<input type="submit" name="submit" id="dialog-link" value="Check it out." /> 
</form> 
+4

我能說的是:** ** OY ... – Neal

+3

'$(文件)。就緒()'不應該是一個'if'語句中。它應該在腳本的頂層。找到一個好的JavaScript教程,然後找到一個用於jQuery的。 – jrummell

回答

1

對於初學者來說,你onsubmit總是接收undefined值。爲了在這種情況下提交表格,findUrls()需要返回true

JavaScript沒有void類型,所以每個函數都必須返回一個 的值。缺省值是未定義的,除了構造函數,其中 的默認返回值是this。

http://javascript.crockford.com/survey.html

0

您正在使用的屬性名稱爲ID,而不是使用:

$("#myForm1").submit(); 

或者:

submitform();