从asp文本框调用javascript函数
问题描述:
我已经看到一些关于这个问题的帖子,但我找不到解决我的问题。我有一个文本框,并通过autocomplextxtender我从数据库中搜索记录。这工作正常。从asp文本框调用javascript函数
<ajaxToolkit:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server" CombineScripts="false">
</ajaxToolkit:ToolkitScriptManager>
<asp:TextBox ID="txtAccNo" runat="server" Width="125px" ToolTip="Account Number">
</asp:TextBox>
<asp:AutoCompleteExtender ID="AutoCompleteExtender2" runat="server"
TargetControlID="txtAccNo" MinimumPrefixLength="2" EnableCaching="true" CompletionSetCount="10"
CompletionInterval="1000" CompletionListCssClass="autoExtender" CompletionListItemCssClass="autoExtenderList"
ServiceMethod="getAccountNumbers" ServicePath="WebServiceGetAccounts.asmx">
</asp:AutoCompleteExtender>
现在我想在文本框中显示一些加载GIF(http://loadinggif.com/images/image-selection/3.gif)当数据web服务搜索。为此,我想要JavaScript函数来加载这个gif文本框中。当webservice显示一些数据时,我想删除这个gif。另外我想加载这个gif,如果用户在文本框中放置至少2个数字。因为autocompleteextender的MinimumPrefixLength属性设置为2.如果任何人都可以提供帮助,我会非常感激。
答
有AutoCompleteExtender像OnClientPopulating和OnClientCompleted的一些属性...使用这些属性来执行任何任务。在我的情况下,我想加载一个gif。我创建了一个css类和一个javascript函数来加载gif,同时使用AutoCompleteExtender的属性。
onclienthiding="OnClientCompleted" onclientpopulated="OnClientCompleted"
Javascript函数:
function OnClientPopulating(sender, e) {
sender._element.className = "loading";
}
function OnClientCompleted(sender, e) {
sender._element.className = "";
}
CSS类别:
.loading
{
background-image: url(img/loading.gif);
background-position: right;
background-repeat: no-repeat;
}
答
希望低于解决方案/逻辑帮助你。
<asp:TextBox ID="txtAccNo" runat="server" Width="125px" onchange="return inputText_Changed();" ToolTip="Account Number"> </asp:TextBox>
<script type="text/javascript">
function inputText_Changed() {
var accountNo = document.getElementById('<%= txtAccNo.ClientID %>').value.trim();
//check minimum input characters MinimumPrefixLength
if (accountNo.length >= 2) {
// remove/hide your gif image
return true;
}
else {
// Add/show your gif image
return false;
}
}
</script> `
让我知道,如果有任何疑问,你有
感谢
编码快乐
可以使用[BlockUI](http://malsup.com/jquery/block/)为元件也 – Webruster
我喜欢你的建议......但你可以在BloackUI中建议一个方法,当webservice返回搜索数据时它会被触发。所以我可以取消阻止加载屏幕 –
我不能那么具体,但可以给你一个场景如何在asp.net控件中使用 – Webruster