0

テキスト内のリンクを検出し、「はい」、「いいえ」、「キャンセル」の3つのボタンがあるJqueryUIダイアログボックスを開くJavaScriptを開発しています。すべてが正常に機能しています。javascriptがテキスト内のリンクを検出すると、ダイアログボックスが表示されます。「いいえ」ボタンと「キャンセル」ボタンは正常に機能しています。ユーザーが「はい」ボタンをクリックしたときにフォームを送信したいのですが、機能しません。これが私のHTMLとJavascriptのコードです。

<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

2 に答える 2

1

手始めに、あなたonsubmitは常にの値を受け取っていますundefined。この場合、フォームを送信するには、findUrls()を返す必要がありtrueます。

JavaScriptにはvoid型がないため、すべての関数が値を返す必要があります。デフォルトの戻り値がthisであるコンストラクターを除いて、デフォルト値は未定義です。

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

于 2012-12-03T18:41:15.220 に答える
0

IDとして属性名を使用しています。代わりにこれを使用してください。

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

または:

submitform();
于 2012-12-03T18:39:41.927 に答える