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>
页面点击查询后,联系电话文本框中的值,恢复到初期状态了。求指教,谢谢。
你可以尝试单步调试一下
已经针对这个问题进行了调试,就是在页面刷新后,dropdownlist.change事件没有走,而textbox默认的有个值被加载上了。
@宝宝,爸爸爱你: 所以你应该知道问题所在了吧,页面加载的时候,本来就不可能触发change事件。照着思路你应该可以自己找到解决方案的
@陈希章: 我想的处理是在页面加载时判断画面是否第一次进入,这样的话,怎么感觉都是在拼代码,没有从源头找到问题的根源,所以在此处纠结了。麻烦了。
第十七行代码:var value = $.trim($("option:selected", $(this)).val());这样查找选中下拉框,如果不止一个下拉框就有问题了。
第三十七行代码: $txtCustomerPhone.val(item.text);遍历给一个TextBox赋值,太奇怪了吧。
可能您没有注意到,这里的$(this)指的不是form表单,只是指的是$ddlCarAdvisor对象,所以取出的下拉框就是唯一的。
关于第二个问题,是因为比较菜的原因,接收后台处理的JSON后,不用遍历的话不知道怎么写,直接遍历取出来的一条数据,将text赋给文本框。
这个是我没有说清楚吧,主要是在后台 给 txtCustomerPhone.text 赋了个初始值,导致了 这个txt的value的值一直被记录着,使得在显示数据的时候一直显示的初始值,既然这样,我就把值赋给隐藏控件,
在$(function(){
......
$txtCustomerPhone.val($hdnCustomerPhone.val());
......
});
这样我就可以避免这个问题了。谢谢大家了,可能是我描述问题,不是很清楚吧。