0

私のJqueryモーダルは完全に機能しますが、モーダルを閉じるはずのないボタンをクリックすると、モーダルが閉じますか? ボタンがページを自動的に更新してモーダルを閉じている可能性はありますか? この現在の問題をどのように克服できますか?

これはスクリプトです:

 <script>

$(document).ready(function () {
    var triggers = $(".modalInput").overlay({

        // some mask tweaks suitable for modal dialogs
        mask: {
            color: '#F7F7F7',
            loadSpeed: 200,
            opacity: 0.9
        },

        closeOnClick: false
    });

    var buttons = $("#yesno button").click(function (e) {

        // get user input
        var yes = buttons.index(this) === 0;

        // do something with the answer
        triggers.eq(0).html("You clicked " + (yes ? "yes" : "no"));
    });

});

 </script>

そして、これはボタン(トリガー)です:

    <asp:Button class="modalInput" rel="#yesno" ID="modalInput" runat="server" BackColor="#525663" BorderColor="#999999"
               BorderStyle="Solid" BorderWidth="1pt" CommandName="MoveNext" Font-Size="Large"
               ForeColor="White" Style="font-family: Segoe UI; margin-left: 0px; position: relative;
               top: 25px; left: -25px; width: 152px; height: 41px;" Text="Edit Information"  />

これはモーダルです:

  <div class="modal" id="yesno">  
 <h2>Edit Account Information:</h2>  

   <Uc2:EditCurrentSet ID="EditCurrentSet" runat="server" />

    <a class="close"></a> 

        </p></div> 

*私はリターンを偽にしていますか?正しい場所に?: 私がいる場合でも、結果に変化はありません! *

   <script>


$(document).ready(function () {
    var triggers = $(".modalInput").overlay({

        // some mask tweaks suitable for modal dialogs
        mask: {
            color: '#F7F7F7',
            loadSpeed: 200,
            opacity: 0.9
        },

        closeOnClick: false

    });

    var buttons = $("#yesno button").click(function (e) {

        // get user input
        var yes = buttons.index(this) === 0;

        // do something with the answer
        triggers.eq(0).html("You clicked " + (yes ? "yes" : "no"));
        return false;
    });

    return false;
});
  </script>
4

2 に答える 2

2

ええ、あなたreturn false;は間違った場所にいます。の代わりにreturn false;、イベントのpreventDefault関数を使用します。

var buttons = $("#yesno button").click(function (e) {
    e.preventDefault();

    // get user input
    var yes = buttons.index(this) === 0;

    // do something with the answer
    triggers.eq(0).html("You clicked " + (yes ? "yes" : "no"));
    return false;
});

そのボタンは、Web フォームの性質と同様に送信されます。を使用するpreventDefault(またはreturn false;必要に応じて) と、サーバーへの投稿が停止されます。これは、の既定のアクションですasp:Button

于 2012-10-30T19:46:30.267 に答える
1

イベント ハンドラーが false を返すように変更しても機能しない場合は、正しいボタンを選択していません。セレクターは次のようになるはずです。

var buttons = $("#modalInput").click(function (e) {
    // get user input
    var yes = buttons.index(this) === 0;

    // do something with the answer
    triggers.eq(0).html("You clicked " + (yes ? "yes" : "no"));
    return false;
});

セレクターの # は、ID でボタンを検索しようとしていることを意味します。そのボタンのレンダリングされた HTML を見て (お気に入りのブラウザーでソース/Web 開発者ツールを表示)、自分で ID を確認できます。ボタンに rel 属性を追加して少し複雑にしましたが、とにかくセレクターが機能するとは思いもしませんでした。

于 2012-10-30T19:30:17.883 に答える