-1

何が欠けているのかわからないので、これをここに投げると思いました。以下は、.ajaxComplete正しく機能しない方法です。アクションの元の URL と、このコードを実行したいアクションの URL を比較する必要があります。

これは ASP MVC サイトなので、ヘルパーを使用して適切なコントローラー アクションから URL を取得します。次に、settingsオブジェクトを使用して、現在の Ajax 呼び出しのソースから URL がどこにあるかを判断します (このページにはいくつかあるので、これを使用して区別する必要があります)。

スクリーン ショットからわかるように、url変数 との両方settings.urlに同じ値が含まれています。35また、それぞれの長さをチェックするアラートを設定すると、アラートは両方の長さで返されます。

ただし...このコードは定期的にif条件に失敗します(起動できませんalert("here"))。私はjQueryに比較的慣れていないので、これが2つの文字列を比較する正しい方法であるかどうか疑問に思っていますか? 参考までに-私はもともと条件を

if(settings.url == url)

しかし、私もこれを通過させることができませんでした。

//Tie completion of GetChannel Ajax call to execution of 
//getDrmTerritory instead of using .change event on 
//Market Segment drop down
$(document).ajaxComplete(function (event, xhr, settings) {
    var url = '@Url.Action("GetChannel", "AgentTranmsission")';
    alert(url.length + " " + settings.url.length);
    alert("about to check");
    if (String(settings.url) == String(url)) {
        alert("here");
        var channel = $.trim($('#channelName').text());
        if ($('#AlignmentM:radio').is(':checked')) {
            if ($('#MailingZip').val() != "" && $('#MailingState').val() != "" && channel != "") {
                getDrmTerritory($('#MailingZip').val(), $('#MailingState').val(), channel);
            } else if (channel != "") {
                $('#territoryName').text("");
                $('#Region').val("");
            }
        }
        else if ($('#AlignmentL:radio').is(':checked')) {
            if ($('#LocationZip').val() != "" && $('#LocationState').val() != "" && channel != "") {
                getDrmTerritory($('#LocationZip').val(), $('#LocationState').val(), channel);
            } else if (channel != "") {
                $('#territoryName').text("");
                $('#Region').val("");
            }
        }
    }
    alert("end");
});

ここに画像の説明を入力

編集

(settings.url == url)これはChromeのコンソールで評価されたスクリーンショットです

ここに画像の説明を入力

これがalertそのテストですalert(url.length + " " + settings.url.length);

ここに画像の説明を入力

4

2 に答える 2

0

推測ですが、空白をチェックしてみませんか...長さの一部としてカウントされるかどうかはわかりません。

私は以前に同様の問題を抱えていたので、次にチェックする場所になります。このリンクが役立つ場合があります: JavaScript 文字列で複数の空白を単一の空白に置き換える

于 2013-05-23T16:41:45.783 に答える