-1

我不确定我错过了什么,所以我想我会把它扔在这里。以下是一种.ajaxComplete无法正常工作的方法。我需要将操作来自的 URL 与我希望在之后执行此代码的操作的 URL 进行比较。

这是一个 ASP MVC 站点,因此我使用帮助程序从相应的控制器操作中获取 URL。然后,我使用该settings对象来确定来自当前 Ajax 调用源的 URL(我在此页面上有一对,因此需要使用它来区分)。

从屏幕截图中可以看出,url变量 和settings.url都包含相同的值。我还设置了一个警报来检查每个的长度,并且警报返回35两个的长度。

但是...此代码通常会导致if条件失败(我无法alert("here")触发)。我对 jQuery 比较陌生,所以我想知道这是否是比较两个字符串的正确方法?仅供参考 - 我最初写的条件是

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

4

网址中有拼写错误

请检查一下

传播

传输

于 2013-05-23T17:54:45.710 回答
0

只是一个猜测,但你为什么不尝试检查它们是否有空格......我不确定它是否会被算作长度的一部分。

我以前也遇到过类似的问题,下一个我会检查的地方。此链接可能会有所帮助:Replace multiple whitespaces with single whitespace in JavaScript string

于 2013-05-23T16:41:45.783 回答