无法从jQuery第二次调用web服务
我无法从jQuery第二次调用web服务函数代码在这里 第页:无法从jQuery第二次调用web服务,jquery,asp.net,web-services,json,telerik,Jquery,Asp.net,Web Services,Json,Telerik,我无法从jQuery第二次调用web服务函数代码在这里 第页: 函数getCityByPinCode(){ var路径=“”; $.ajax({ 类型:“POST”, url:“+path+”/CityBasedOnPinCode”, 数据:“{pincode:'”+$(“#”).val()+“}”, contentType:“应用程序/json;字符集=utf-8”, 数据类型:“json”, 成功:一旦成功, 错误:OnError }); } 成功时的功能(数据、状态){ var city
函数getCityByPinCode(){
var路径=“”;
$.ajax({
类型:“POST”,
url:“+path+”/CityBasedOnPinCode”,
数据:“{pincode:'”+$(“#”).val()+“}”,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
成功:一旦成功,
错误:OnError
});
}
成功时的功能(数据、状态){
var city=document.getElementById(“”);
var val1=数据d;
document.getElementById(“contentPlaceholder 1\u companyDetail1\u tbxCity”)。value=val1;
}
函数OnError(请求、状态、错误){
警报(请求状态文本);
}
网络服务:
public string CityBasedOnPinCode(string pincode)
{
int pcode = 0;
int.TryParse(pincode, out pcode);
List<usp_CityBasedOnPinCodeResult> lstCity = new CityDA().CityBasedOnPincode(pcode);
return lstCity[0].CityName.ToString();
}
公共字符串CityBasedOnPinCode(字符串pincode)
{
int pcode=0;
内锥虫(pincode,外pcode);
List lstCity=new CityDA().CityBasedOnPincode(pcode);
返回lstCity[0].CityName.ToString();
}
我想在输入的pincode的基础上填充城市文本框。因此,当用户输入pincode时,他/她会自动获得城市名称。当我输入pincode预定义值时,它会给出完美的结果,但当我输入新值时,我得到如下错误
Microsoft JScript运行时错误:应为对象
注意,若我在页面加载时(编辑时)在textbox中有pincode的值,那个么我得到的是正确的值,但在更改textbox的值后并没有得到值。
jQuery包含在母版页中。所以这里不包括。因为您订阅的是RadNumericTextBox提供的客户端事件,所以在代码中使用事件参数可能比使用选择器获取值更容易。您可以看到如何从OnValueChanged事件获取新值的示例 除此之外,当我将代码更改为以下代码时,一切都在我这边正常工作:
<script type="text/javascript">
function getCityByPinCode(sender, eventArgs) {
//do stuff
}
</script>
<telerik:RadNumericTextBox ID="ntxbPostCode" runat="server" DataType="System.Int32"
MaxLength="4" TabIndex="4" Width="95%" DecimalDigits="0" ClientEvents-OnValueChanged="getCityByPinCode">
</telerik:RadNumericTextBox>
<br />
<asp:TextBox ID="tbxCity" runat="server" Width="95%" TabIndex="5"></asp:TextBox>
函数getCityByPinCode(发送方、事件参数){
//做事
}
这防止了事件在初始页面加载时触发(代码也是如此),并确保我使用get_newValue()函数成功获取了RadNumericTextBox的新值
小提示:您应该能够只使用OnSuccess函数中的city变量来设置其值,与再次调用getElementbyID相反。您是否已签入firebug以查看是否收到更具体的错误消息?在OnSuccess代码中设置值时,您是否有理由不使用“city”变量引用文本框?@patmortech:变量city没有用处。它以前使用过。现在我直接给textbox赋值,而不是使用city@Jack Marchetti:Firebug显示的具体错误是“b[a]不是函数”您是否在上面的三个函数中的Firebug中设置了断点,以查看进程的哪一部分抛出了错误?具体来说,我相信问题可能是他在textbox属性中的函数名后面使用了()的缘故。同意,这是最有可能的罪魁祸首,因为所有其他JavaScript都检查出了这一点。在属性中使用()将在页面加载时调用该函数,如果此时RadNumericTextBox中没有任何内容,则它当然会失败。也许也可以设置一些检查。@patmortech您是对的,先生。。感谢你和所有对我感兴趣并帮助我的人。。。
<script type="text/javascript">
function getCityByPinCode(sender, eventArgs) {
//do stuff
}
</script>
<telerik:RadNumericTextBox ID="ntxbPostCode" runat="server" DataType="System.Int32"
MaxLength="4" TabIndex="4" Width="95%" DecimalDigits="0" ClientEvents-OnValueChanged="getCityByPinCode">
</telerik:RadNumericTextBox>
<br />
<asp:TextBox ID="tbxCity" runat="server" Width="95%" TabIndex="5"></asp:TextBox>