Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法从jQuery第二次调用web服务_Jquery_Asp.net_Web Services_Json_Telerik - Fatal编程技术网

无法从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

我无法从jQuery第二次调用web服务函数代码在这里

第页:


函数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>