0

現在、ユーザー編集ダイアログ (fancybox) があり、基本的にこのダイアログをパスワード変更用の別の fancybox ダイアログに置き換えるリンクがあります。パスワード変更ダイアログの送信ボタンをクリックするまで、すべてが正しく動作しているようです。何も起こりません。フィドラーを確認しましたが、リクエストは行われていません。私は Firefox を調べて、パスワード変更コントロールが実際に正しいフォーム タグでラップされていることを確認しました。何を与える?同様の問題を見つけるためにネットを調べたところ、いくつかありましたが、MVC4を使用しているものはなく、よくわかりませんでした。

これらの fancybox モーダルは、部分ビューを介してロードされています。たとえば、最初のダイアログを開くリンクは、単に href="EditUserPartialAction" のリンクです。よく働く。最初のモデルからのリンクによって開かれるモデルは同じことを行いますが、href="ChangePasswordPartialAction" があるだけです。それは完全にロードします。何もしないボタンだけです。

これが生成されたhtmlです。フォームが正しいように見え、機能するはずです (何かを見落としていない限り)。繰り返しますが、何も起こっていません。エラーは言うまでもなく、リクエストは行われていません。このダイアログを以前の編集ユーザーダイアログに置き換えるだけのキャンセルボタンが機能します。

<div class="fancybox-wrap fancybox-desktop fancybox-type-ajax fancybox-opened" tabindex="-1" style="width: 533px; height: auto; position: fixed; top: 20px; left: 685px; opacity: 1; overflow: visible;">
    <div class="fancybox-skin" style="padding: 15px; width: auto; height: auto;">
        <div class="fancybox-outer">
            <div class="fancybox-inner" style="overflow: auto; width: 503px; height: 279px;">
                <div id="modal-page">
                    <h1>Change Password</h1>
                    <form method="post" action="/AccountUser/ChangePassword?userId=0">
                        <div class="field_wrapper password">
                            <label for="NewPassword">NewPassword</label>
                            <input id="NewPassword" type="password" placeholder="Password" name="NewPassword">
                        </div>
                        <div class="field_wrapper password">
                            <label for="ConfirmPassword">ConfirmPassword</label>
                            <input id="ConfirmPassword" type="password" placeholder="Confirm Password" name="ConfirmPassword">
                        </div>
                        <div class="field_wrapper submit">
                            <a class="close_modal gradient change-password" href="/AccountUser/EditUserPartial?userId=0">Cancel</a>
                            <input class="gradient" type="submit" value="Change" name="update"/>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    <a class="fancybox-item fancybox-close" href="javascript:;" title="Close"></a>
    </div>
</div>

更新: 実際に追加された jquery/javascript はありません。fancybox ライブラリ自体を除いて、いくつかのクラスに接続するだけで追加されるのはこれだけです。

// main.js

$(document).ready(function() {
    $('.edit, .addUser, .delete').fancybox({

        maxWidth : 486,
        autoSize : true,

    });
});

// plugins.js

// Avoid `console` errors in browsers that lack a console.
(function() {
    var method;
    var noop = function () {};
    var methods = [
        'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error',
        'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log',
        'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd',
        'timeStamp', 'trace', 'warn'
    ];
    var length = methods.length;
    var console = (window.console = window.console || {});

    while (length--) {
        method = methods[length];

        // Only stub undefined methods.
        if (!console[method]) {
            console[method] = noop;
        }
    }
}());

// Place any jQuery/helper plugins in here.
4

0 に答える 0