前面导入jquery.js
<script language="JavaScript" type="text/javascript">
var Arr_values;
var Arr_value = new Array();
Arr_values = Arr_value;
document.onclick = function() {
deleteDiv();
}
$(document).ready(function() {
if (document.getElementById("txtXmlStr") == null) {
return;
}
var xml_value = document.getElementById("txtXmlStr").value;
if (xml_value == "") {
return;
}
var detail;
detail = xml_value.split("||");
// alert(detail.length);
for (var i = 0; i < detail.length; i++) {
var node = detail[i];
var moredetail = node.split("#");
// alert( moredetail[0]+" "+ moredetail[1]+" "+ moredetail[2]);
var name = moredetail[0];
var idCard = moredetail[1];
var Ctype = moredetail[2];
Arr_value[i] = new Array(name, idCard, Ctype);
}
Arr_values = Arr_value;
document.getElementById("txtXmlStr").value = "";
//alert(Arr_values.length);
//});
});
//删除层
function deleteDiv() {
var kv = document.getElementById("google");
if (kv) {
kv.removeNode(true);
}
}
//查找匹配的关键字
function search(txtNameKey) {
//防止产生N多个DIV,所以先判断是否存在,如果存在,则删除.
deleteDiv();
//创建一个层,用于显示实时提示
var div = document.createElement("div");
div.id = "google";
div.style.position = "absolute"; //设置位置为绝对位置
//控制层的位置和大小
//位置
var top;
var left;
//alert(txtNameKey.value);
//alert(document.getElementById(txtNameKey).value);
var tempdiv = txtNameKey;
top = tempdiv.offsetTop;
left = tempdiv.offsetLeft;
while (tempdiv = tempdiv.offsetParent) {
top += tempdiv.offsetTop;
left += tempdiv.offsetLeft;
}
//大小
var width = txtNameKey.offsetWidth;
var height = 0;
//设置
div.style.top = top + txtNameKey.offsetHeight - 1;
div.style.left = left;
div.style.width = width - 2;
//效果:边框样式框和背景色
div.style.backgroundColor = "white";
div.style.borderTopStyle = "solid";
div.style.borderBottomStyle = "solid";
div.style.borderLeftStyle = "solid";
div.style.borderRightStyle = "solid";
//注意,边框是加在区域外围的,所以在设置宽度的时候减掉了1 + 1 = 2个像素
div.style.borderTopWidth = 1;
div.style.borderBottomWidth = 1;
div.style.borderLeftWidth = 1;
div.style.borderRightWidth = 1;
//填充数据
var value = txtNameKey.value;
var f = false;
for (var i = 0; i < Arr_values.length; i++) {
if (Arr_values[i][0].substr(0, value.length).toLowerCase() == value.toLowerCase()) {
f = true;
//每个选项填充到div中
var span = document.createElement("<div>");
span.innerText = Arr_values[i][0];
span.title = Arr_values[i][1];
span.name = Arr_values[i][2];
span.style.fontSize = 14;
span.style.padding = "2px";
div.appendChild(span);
span.style.width = width - 2
//触发每个项目的鼠标移入移出事件
span.onmouseover = function() {
event.srcElement.style.cursor = "hand";
event.srcElement.style.backgroundColor = "blue";
event.srcElement.style.color = "white";
}
span.onmouseleave = function() {
event.srcElement.style.cursor = "default";
event.srcElement.style.backgroundColor = "white";
event.srcElement.style.color = "black";
}
//单击选项时将该选项的值填充到文本框.
span.onclick = function() {
txtNameKey.value = event.srcElement.innerText;
var k = txtNameKey.name.substr(txtNameKey.name.lastIndexOf("e") + 1);
document.getElementById("txtCardID" + k).value = event.srcElement.title;
document.getElementById("txtCustomerName" + k).value = event.srcElement.innerText;
//需要增加多种类型 document.getElementById("drplstPagerType" + k).options[event.srcElement.name].selected = true;
$("#chkTravel" + k).attr("checked", "");
//填充完毕后删除DIV
deleteDiv();
}
}
}
//将层追加到页面
if (f) {
document.body.appendChild(div);
}
//如果文本框中没有内容,则删掉DIV
if (txtNameKey.value.length == 0) {
deleteDiv();
}
}
function changeEvent(islog, gnamei) {
var name = "";
var carid = "";
var cbVisitor = "";
var gname = "";
var cardid = "";
if (islog == "0") {
name = "txtCustomerName" + gnamei;
carid = "txtCardID" + gnamei;
cbVisitor = "chkTravel" + gnamei;
gname = $("#" + name).attr("value");
cardid = $("#" + carid).attr("value");
} else { //Gname06 Card06 cbVisitor206
name = "txtCustomerName" + gnamei;
carid = "txtCardID" + gnamei;
cbVisitor = "chkTravel" + gnamei;
gname = $("#" + name).attr("innerHTML");
cardid = $("#" + carid).attr("innerHTML");
}
//如何判断
$.post("../fellowship/DisposeRequest.aspx", {
"methodParameter": "JasonOrderTable2",
"gname": escape(gname),
"cardid": cardid
},//到此页面中去判读数据库中是否已经存在了该人
function(xml_data) {
if (xml_data == "1") {
alert("已是常旅客!");
// var c = document.getElementById("Visitor1"+gnamei);
// c.checked="";
$("#" + chkTravel).attr("checked", "");
}
});
}
</script>
<tr>
<td style="background-image: url(/images/bg/thead.gif); background-repeat: repeat-x;
text-align: left;" colspan="6" class="font3">
乘客人数:
<select id="drplstGuestNum" name="drplstGuestNum" οnchange="ShowPassenger();" runat="server"
style="width: 60px;">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
</select>
位 儿童订票请拨客服热线
<input id="txtXmlStr" type="hidden" runat="server" />
021-51808178
</td>
</tr>
<tr id="trCostomer1" class="font3">
<td>
第1位乘客姓名
</td>
<td>
<asp:TextBox ID="txtCustomerName1" runat="server" class="input0" onpropertychange="search(txtCustomerName1)"
οnclick="search(txtCustomerName1)"></asp:TextBox>
</td>
<td>
证件类型:
</td>
<td>
<asp:DropDownList Width="100" ID="drplstPagerType1" runat="server">
<asp:ListItem Value="0">身份证</asp:ListItem>
<asp:ListItem Value="1">护照</asp:ListItem>
<%-- <asp:ListItem Value="2">学生证</asp:ListItem>
<asp:ListItem Value="3">军人证</asp:ListItem>
<asp:ListItem Value="4">回乡证</asp:ListItem>
<asp:ListItem Value="5">台胞证</asp:ListItem>
<asp:ListItem Value="6">港澳通行证</asp:ListItem>
<asp:ListItem Value="7">国际海员证</asp:ListItem>
<asp:ListItem Value="8">其它证件</asp:ListItem>如果此处修改则确认信息里也要修改这么多的类型--%>
</asp:DropDownList>
<asp:CheckBox ID="chkTravel1" runat="server" Text="常旅客" οnclick="changeEvent('0','1')"; />
</td>
<td>
证件号码:
</td>
<td style="text-align: left;">
<asp:TextBox ID="txtCardID1" runat="server" Width="90%" class="input0" Style="ime-mode: disabled;"
MaxLength="18"></asp:TextBox>
</td>
</tr>
后台
//loading 事件中 把常旅客从数据库中读取放入这里
public void BindPersonList()
{
//调用此方法要添加个条件 需要修改logic层 userinfo.usname
DataSet ds = Logic.People.GetPeopleList();
StringBuilder xmlnode = new StringBuilder();
if (ds != null)
{
if (ds.Tables.Count > 0)
{
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
DataRow row = ds.Tables[0].Rows[i];
xmlnode.Append("||")
.Append(row[1])
.Append("#")
.Append(row[3])
.Append("#")
.Append(row[8])
.Append("#");
}
this.txtXmlStr.Value = xmlnode.ToString();
}
}
}