0

以下のコードを使用してJqueryUIポップアップを取得していますが、値が返されず、ポップアップボックスが閉じています

ボタンをクリックすると、確認ボックスとして機能する必要があります。

コード:

<style type="text/css" >
        .ui-widget-header, .ui-widget-content
    { color: red !important;}
</style>
<script type="text/javascript">
    $(document).ready(function () {
        var $myDialog = $('<div></div>')
        .html('You are going to Lock the Record.<br/>Click OK to confirm.  Click Cancel to stop this action.')
        .dialog({
            autoOpen: false,
            title: 'Confirm..?',
            buttons: { "OK": function () {
                $(this).dialog("close");

            }, "Cancel": function () {
                $(this).dialog("close");

            }
            }
        });

        $(function fn() {
            $('#Button1').click(function (e) {
                return $myDialog.dialog('open');

            });
        });
    });
</script>


<asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="return fn() onclick="Button1_Click"/>
4

5 に答える 5

1
$(function fn() {

 });

Uには別の機能の中にdomready機能があります。上記のブロックを削除する必要があります。

 $(document).ready(function () {
        var $myDialog = $('<div></div>')
        .html('You are going to Lock the Record.<br/>Click OK to confirm.  Click Cancel to stop this action.')
        .dialog({
            autoOpen: false,
            title: 'Confirm..?',
            buttons: { "OK": function () {
                $(this).dialog("close");

            }, "Cancel": function () {
                $(this).dialog("close");

            }
            }
        });
            $('<%=Button1.ClientID%>').click(function (e) {
                $myDialog.dialog('open');
                return false;

            });
    });

これが正しいことを願っています。

于 2013-02-18T08:48:30.357 に答える
0

.dialog('open')は常にすぐに戻り、ユーザーの操作を待ちません。

Button1コントロールのポストバックをティガーするようにコードを変更する必要があります。戻り値に依存する代わりに。

JavaScriptを使用してポストバックASP.NETポストバックをトリガーする方法については、こちらを参照してください

編集

<style type="text/css" >
        .ui-widget-header, .ui-widget-content
    { color: red !important;}
</style>
<script type="text/javascript">
    $(document).ready(function () {
        var $myDialog = $('<div></div>')
        .html('You are going to Lock the Record.<br/>Click OK to confirm.  Click Cancel to stop this action.')
        .dialog({
            autoOpen: false,
            title: 'Confirm..?',
            buttons: { "OK": function () {
                $(this).dialog("close");

__doPostBack("<%=Button1.ClientID %>","");

            }, "Cancel": function () {
                $(this).dialog("close");

            }
            }
        });

        $(function fn() {
            $('#Button1').click(function (e) {
                return $myDialog.dialog('open');

            });
        });
    });
</script>


<asp:Button ID="Button1" runat="server" UseSubmitBehavior="false" Text="Button" OnClientClick="return fn()" onclick="Button1_Click"/>
于 2013-02-18T08:40:15.920 に答える
0

あなたのdomの構造を理解するのは難しいです。

しかし、私はあなたに実用的な解決策を与えます

<div id="someDialog">some controls or text or whatever you want to show./div>// add it to your page.

次に、JqueryおよびJquery UIライブラリを使用して、headタグに入れます

$(function(){
$('#someDialog').dialog({ autoOpen: false,
            title: 'Confirm..?',
            buttons: { "OK": function () {
                if(confirm("are you sure you want to close the dialog))
                     $(this).dialog("close");

            }, "Cancel": function () {
                $(this).dialog("close");

            });


 $('#Button1').click(function (e) {
                $('#someDialog').dialog('open');

            }); // without return statement. 
});
于 2013-02-18T08:40:38.680 に答える
0

asp.netボタンはHTML出力でID'Button1'でレンダリングされていますか?はいの場合は、次のコードを試すことができます(コードを修正しました)

コード:

<style type="text/css" >
        .ui-widget-header, .ui-widget-content
    { color: red !important;}
</style>
<script type="text/javascript">
    $(document).ready(function () {
        var $myDialog = $('<div></div>')
        .html('You are going to Lock the Record.<br/>Click OK to confirm.  Click Cancel to stop this action.')
        .dialog({
            autoOpen: false,
            title: 'Confirm..?',
            buttons: { "OK": function () {
                $(this).dialog("close");

            }, "Cancel": function () {
                $(this).dialog("close");

            }
            }
        });

         $('#Button1').click(function (e) {
               $myDialog.dialog('open');
               e.preventDefault();      
          });
      });
</script>


<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click"/>
于 2013-02-18T08:41:43.810 に答える
0

コントロールにCSSクラスdeleteを追加してから、jquery確認ダイアログを適用します。

$('.delete').click(function () {
          return confirm('Are you sure you wish to delete this record?'); 
    });
于 2013-09-25T18:20:49.020 に答える