-1

私は自分のサイトに「リンクを追加する」機能を試みています。そのために、TwitterBoostrapJSのモーダルプラグインを使用しています。メインページには、入力する「リンク」フィールドのみがあります。ユーザーが「リンクの追加」ボタンをクリックすると、モーダルがポップアップし、ユーザーには、入力する完全なフォーム(リンク、タイトル、タグ)が表示されます。ただし、リンクフィールドに前の手順の値を事前に入力しておく必要があります。これは、delicious.comで「リンクを保存」したときに起こることと似ています。

ただし、問題は、モーダルダイアログ内にJavaScriptを挿入すると、モーダルダイアログが機能しなくなることです。この問題を回避する方法はありますか?どうもありがとうございます!

<html>
<head>
  <title>Example</title>
  <link rel="stylesheet" href="scripts/bootstrap.min.css">
  <link rel="stylesheet" href="main.css" />
</head>
<body>
  <!-- The Modal Dialog  -->
  <div id="modal-from-dom" class="modal hide fade">             
    <div class="modal-body">
        <form id='post-on-wall' method='POST' action='savePost.php' enctype='multipart/form-data'>
                Peter

                <script type="text/javascript">
                    var linkURL = $('#linkURL').val();
                    //document.write("<input type='text' class='label-inline' name='linkURL' id='wall-post' value=linkURL>");
                    document.write(linkURL);
                </script>


                <button type='submit' class='btn'>Add Link</button>
        </form>
    </div>
    </div>
  </div>
  <div class="container">
    <div class="wall-post">
        <textarea class='label-inline' name='linkURL' id='linkURL'></textarea>
        <button data-controls-modal="modal-from-dom" data-backdrop="static" class="btn">Add Link</button>

    </div>
  </div>
  <script src="scripts/jquery.min.js"></script>
  <script src="scripts/bootstrap-modal.js"></script>
</body>
4

1 に答える 1

4

スクリプトがArmanで機能するのを妨げるいくつかの小さなことがあります。

1つ目は、ヘッダーにjqueryスクリプトとブートストラップスクリプトをロードする必要があることです。ブラウザはページの読み込み時にページを解釈し、ブラウザが$( "#linkURL")と表示されたビットにヒットすると、ページをどう処理するかわかりません。

2番目のビットは、ユーザーが[リンクの追加]ボタンをクリックしたときに、ユーザーがLinkURLボックスに入力したコンテンツのみを知ることができるということです。したがって、実際にモーダルボックスにデータを入力できるのはその後のみです。

これがあれば、モデルライブラリが提示するイベントを利用してこれを設定できます。

これをすべてまとめると、次のようになります。

<html>
    <head>
        <title>Example</title>
        <script src="scripts/jquery.min.js" type="text/javascript"></script>
        <script src="scripts/bootstrap-modal.js" type="text/javascript"></script>
        <link rel="stylesheet" href="scripts/bootstrap.min.css">
        <link rel="stylesheet" href="main.css">

        <script type="text/javascript">

            $(document).ready(function(){
                $('#modal-from-dom').bind('show',function(){
                    $(".modal-body").html($("#linkURL").val());
                });
            });

        </script>
    </head>
    <body>
        <div id="modal-from-dom" class="modal hide fade">
            <div class="modal-header">
                <a href="#" class="close">&times;</a>
                <h3>Add Link</h3>
            </div>
            <div class="modal-body">
            </div>
            <div class="modal-footer">
                <a href="#" class="btn primary">Add Link</a>
            </div>
        </div>
        <textarea class='label-inline' name='linkURL' id='linkURL'></textarea>
        <button data-controls-modal="modal-from-dom" data-backdrop="true" data-keyboard="true" class="btn danger">Add Link</button>
    </body>
  </html>

次に、コンテンツを少し変更するだけで、すぐに実行できます。

于 2011-10-21T05:37:09.927 に答える