首页 新闻 搜索 专区 学院

Jquery实现无刷新将值赋给txtBox,点击查询后,页面刷新后,txtBox的值,恢复到初始状态了。

0
悬赏园豆:15 [已解决问题] 解决于 2013-03-12 21:30
 1 <%@ Page Title="新车交车管理" Language="C#" MasterPageFile="~/Masters/Content.master" AutoEventWireup="true"
 2     CodeBehind="SP001000.aspx.cs" Inherits="SP.Pages.SP001000" EnableEventValidation="false" %>
 3 
 4   $(function () {
 5             // 初始化布局
 6             initLayout(arrLayout);
 7             $(window).resize(function () {
 8                 initLayout(arrLayout);
 9             });
10             setTableCheckbox("tblResult", true);
11 
12             //下拉框ajax处理
13             var $ddlCarAdvisor = $("#<%= ddlCarAdvisor.ClientID %>");
14             var $txtCustomerPhone = $("#<%=txtCustomerPhone.ClientID %>");
15             var $hdnCustomerPhone = $("#<%=hdnCustomerPhone.ClientID %>");
16             $ddlCarAdvisor.change(function () {
17                 var value = $.trim($("option:selected", $(this)).val());
18 
19                 if (!isEmpty(value)) {
20                     GetDropDownListUnion(value, $txtCustomerPhone);
21                 }
22                 else {
23                     $txtCustomerPhone.val("");
24                 };
25             });
26 
27             function GetDropDownListUnion(value, $txtCustomerPhone) {
28                 //请求数据
29                 $.ajax({
30                     type: "post",
31                     cache: false,
32                     url: "../Handlers/GetAdvisorTelByAdvisorID.ashx",
33                     data: "AdvisorID=" + value + "",
34                     dataType: "json",
35                     success: function (data) {
36                         $.each(data, function (i, item) {
37                             $txtCustomerPhone.val(item.text);
38                         });
39                     },
40                     error: function (XMLHttpRequest, textStatus, errorThrown) {
41                         alert(textStatus);
42                     }
43                 });
44             }
45 
46         });
47 
48         // 修改按钮前台事件
49         function lkbModify_Click() {
50             var strData = getCheckedValueFromTable("tblResult", "CheckId");
51             var jsonData = eval(strData);
52 
53             if (jsonData.length == 0) {
54                 alert("请选择用户信息。");
55                 return false;
56             }
57 
58             if (jsonData.length > 1) {
59                 alert("只能选择一项。");
60                 return false;
61             }
62             redirect("SP001001.aspx?ID=" + jsonData[0].CheckId + "");
63             return false;
64         }
65 
66         //新增跳转
67         function btnAdd_Click() {
68             redirect("SP001001.aspx?ID=1");
69             return false;
70         }
71     </script>
72 
73  <tr>
74             <td class="itemInfo nowrap">
75                 <span>销售顾问</span>
76             </td>
77             <td class="item nowrap">
78                 <asp:DropDownList ID="ddlCarAdvisor" runat="server" CssClass="select">
79                 </asp:DropDownList>
80             </td>
81             <td class="itemInfo nowrap">
82                 <span>联系电话</span>
83             </td>
84             <td class="item nowrap">
85                 <asp:TextBox ID="txtCustomerPhone" runat="server" CssClass="text" Enabled="false"></asp:TextBox>
86             </td>
87         </tr>

页面点击查询后,联系电话文本框中的值,恢复到初期状态了。求指教,谢谢。

宝宝,爸爸爱你的主页 宝宝,爸爸爱你 | 初学一级 | 园豆:57
提问于:2013-03-10 14:37
< >
分享
最佳答案
0

你可以尝试单步调试一下

收获园豆:15
陈希章 | 老鸟四级 |园豆:2338 | 2013-03-10 19:27

已经针对这个问题进行了调试,就是在页面刷新后,dropdownlist.change事件没有走,而textbox默认的有个值被加载上了。

宝宝,爸爸爱你 | 园豆:57 (初学一级) | 2013-03-10 19:30

@宝宝,爸爸爱你: 所以你应该知道问题所在了吧,页面加载的时候,本来就不可能触发change事件。照着思路你应该可以自己找到解决方案的

陈希章 | 园豆:2338 (老鸟四级) | 2013-03-10 20:23

@陈希章: 我想的处理是在页面加载时判断画面是否第一次进入,这样的话,怎么感觉都是在拼代码,没有从源头找到问题的根源,所以在此处纠结了。麻烦了。

宝宝,爸爸爱你 | 园豆:57 (初学一级) | 2013-03-11 00:21
其他回答(2)
0

第十七行代码:var value = $.trim($("option:selected", $(this)).val());这样查找选中下拉框,如果不止一个下拉框就有问题了。

第三十七行代码: $txtCustomerPhone.val(item.text);遍历给一个TextBox赋值,太奇怪了吧。

psforever | 园豆:461 (菜鸟二级) | 2013-03-11 10:31

可能您没有注意到,这里的$(this)指的不是form表单,只是指的是$ddlCarAdvisor对象,所以取出的下拉框就是唯一的。

关于第二个问题,是因为比较菜的原因,接收后台处理的JSON后,不用遍历的话不知道怎么写,直接遍历取出来的一条数据,将text赋给文本框。

支持(0) 反对(0) 宝宝,爸爸爱你 | 园豆:57 (初学一级) | 2013-03-11 22:28
0

这个是我没有说清楚吧,主要是在后台 给 txtCustomerPhone.text 赋了个初始值,导致了 这个txt的value的值一直被记录着,使得在显示数据的时候一直显示的初始值,既然这样,我就把值赋给隐藏控件,

在$(function(){

......

$txtCustomerPhone.val($hdnCustomerPhone.val());

......

});

这样我就可以避免这个问题了。谢谢大家了,可能是我描述问题,不是很清楚吧。

宝宝,爸爸爱你 | 园豆:57 (初学一级) | 2013-03-12 21:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册