0

我有一个调用 Web 服务的 AutoCompleteExtender。AutoCompleteExtender 运行良好,目标文本框 (tb_provider1) 具有来自 GetProviders 函数的自动完成功能。我想在选择 TextBox (tb_provider1) 的自动完成文本时调用一个 javascript 函数。我使用了 OnClientItemSelected 并且调用在 IE9 中正确完成。这是 ASPX 代码:

<asp:AutoCompleteExtender ID="AutoComplete1" 
runat="server" ServiceMethod="GetProviders" 
ServicePath="AutoCompleteWebService.asmx" OnClientItemSelected="ProviderSelectedFunc"
TargetControlID="tb_provider1" CompletionSetCount="20" 
CompletionInterval="250" CompletionListCssClass="CompletionListCssClass" 
CompletionListItemCssClass="CompletionListItemCssClass" 
CompletionListHighlightedItemCssClass="CompletionListHighlightedItemCssClass">

这是javascript

function ProviderSelectedFunc(sender, args) {
        //here I know I am sending in tb_enrollingProvider1
        var temp = sender._id.toString();
        if (temp.substr(-14,13))
            alert("Testing");
    }

在 IE9 中,警报会触发。在 IE7/IE8 中没有任何反应。有什么帮助吗?

4

1 回答 1

1

我不知道您可以在 IE9 中按 F12 并更改浏览器模式。完成此操作后,我使用断点并意识到它并没有到达 javascript,而是 javascript substr 方法在 IE8 和 IE9 中返回不同的结果。所以 OnClientItemSelected 正在工作,但在我的方法调用中失败了。在 IE 中使用 F12 进行调试在这里很重要,就像使用“substring”(而不是“substr”)一样。

于 2011-11-29T14:12:21.357 回答