textbox的即时响应问题?

qdkcy 2002-11-14 04:16:57
我有两个textbox,要求在一个textbox里每输入完一个字符,不需要任何操作或者按键,就会在另一个textbox里显示出第一个textbox里所输入的字符,请问该怎样实现?
...全文
36 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
qdkcy 2002-11-30
  • 打赏
  • 举报
回复
不好意思,我没分数了,急着用,所以就想给自己一点,没想到不行,在这里向大家道歉,更要对minlove99表示感谢
minlove99 2002-11-30
  • 打赏
  • 举报
回复
你别盗版我给在asp.net版快里给你的答复,好了,你该给我分了
我刚做完,可以给你一段代码,你自己研究吧!主要是在后台用C#将数据从数据库读出来,然后存到前台的数组里去,在前台对数组进行查询。

.aspx代码:
var Txt;
function BindArray(obj1,obj2){
var txtID = obj1;
Txt = obj1;
var ArrayName = obj2.concat();
if(document.activeElement.id==txtID.id)
{
var TextValue = txtID.value;
var i=0;
var j=0;
document.CeHui1.listmember.length = 0;
for(i=0;i<ArrayName.length;i++)
{
if(ArrayName[i].toString().indexOf(TextValue,0)>-1)
{
var listvalue = ArrayName[i];
document.CeHui1.listmember.add(new Option(listvalue,listvalue));
}
}
}
}

function TextKeyDown(){
if(event.keyCode==13)
{
document.CeHui1.listmember.focus();
document.CeHui1.listmember.options(0).selected;
return false;
}
}

function listKeyDown(){
if(event.keyCode==9)
Txt.focus();
}

function listChange(obj){
var listObj = obj(obj.selectedIndex).text;
Txt.value = listObj;
}

<TD vAlign="top" align="left"><SELECT id="listmember" onkeydown="listKeyDown()" onchange="listChange(this)" size="8" name="listmember">
<OPTION></OPTION>
</SELECT></TD>

<TD colSpan="1">
<INPUT type="text" id="jflxrTxt" name="jflxrTxt" onpropertychange="BindArray(this,jsArray2)" onkeydown="return TextKeyDown()"></TD>

.cs代码:
public void SqlDataBind()
{
int m=0;
int i=0;
string [] selsql = new String [5];
for(m=0;m<5;m++)
selsql[m] = "select distinct ";
selsql[0] += "委托单位 from yantu";
selsql[1] += "工程名称地点 from yantu";
selsql[2] += "甲方联系人 from yantu";
selsql[3] += "院经手人 from yantu";
selsql[4] += "工程负责人 from yantu";
System.Data.SqlClient.SqlDataReader dreader;
for(m=0;m<5;m++)
{
i=0;
cehuiDa = new System.Data.SqlClient.SqlDataAdapter(selsql[m],cehuiConn);
cehuiConn.Open();
dreader = cehuiDa.SelectCommand.ExecuteReader();
string [] Record = new string [ProCount];
string FieldName = dreader.GetName(0);
while(dreader.Read())
{
if(dreader[FieldName].ToString()!="")
{
Record[i] = dreader[FieldName].ToString();
i++;
}
}
dreader.Close();
cehuiConn.Close();
int j=0,k=0;
string strJS;
string strArray = "jsArray"+m;
strJS="<script>var "+strArray+" = new Array("+i+");\n";
for(j=0;j<i;j++)
{
if(Record[j].ToString()!="")
{
strJS+=strArray+"["+k+"]='"+Record[j].ToString()+"';\n";
k++;
}
}
strJS+="</script>";
Response.Write(strJS);
}
}

你自己好好的研究一下,我不多说了
qdkcy 2002-11-30
  • 打赏
  • 举报
回复
我刚做完,可以给你一段代码,你自己研究吧!主要是在后台用C#将数据从数据库读出来,然后存到前台的数组里去,在前台对数组进行查询。

.aspx代码:
var Txt;
function BindArray(obj1,obj2){
var txtID = obj1;
Txt = obj1;
var ArrayName = obj2.concat();
if(document.activeElement.id==txtID.id)
{
var TextValue = txtID.value;
var i=0;
var j=0;
document.CeHui1.listmember.length = 0;
for(i=0;i<ArrayName.length;i++)
{
if(ArrayName[i].toString().indexOf(TextValue,0)>-1)
{
var listvalue = ArrayName[i];
document.CeHui1.listmember.add(new Option(listvalue,listvalue));
}
}
}
}

function TextKeyDown(){
if(event.keyCode==13)
{
document.CeHui1.listmember.focus();
document.CeHui1.listmember.options(0).selected;
return false;
}
}

function listKeyDown(){
if(event.keyCode==9)
Txt.focus();
}

function listChange(obj){
var listObj = obj(obj.selectedIndex).text;
Txt.value = listObj;
}

<TD vAlign="top" align="left"><SELECT id="listmember" onkeydown="listKeyDown()" onchange="listChange(this)" size="8" name="listmember">
<OPTION></OPTION>
</SELECT></TD>

<TD colSpan="1">
<INPUT type="text" id="jflxrTxt" name="jflxrTxt" onpropertychange="BindArray(this,jsArray2)" onkeydown="return TextKeyDown()"></TD>

.cs代码:
public void SqlDataBind()
{
int m=0;
int i=0;
string [] selsql = new String [5];
for(m=0;m<5;m++)
selsql[m] = "select distinct ";
selsql[0] += "委托单位 from yantu";
selsql[1] += "工程名称地点 from yantu";
selsql[2] += "甲方联系人 from yantu";
selsql[3] += "院经手人 from yantu";
selsql[4] += "工程负责人 from yantu";
System.Data.SqlClient.SqlDataReader dreader;
for(m=0;m<5;m++)
{
i=0;
cehuiDa = new System.Data.SqlClient.SqlDataAdapter(selsql[m],cehuiConn);
cehuiConn.Open();
dreader = cehuiDa.SelectCommand.ExecuteReader();
string [] Record = new string [ProCount];
string FieldName = dreader.GetName(0);
while(dreader.Read())
{
if(dreader[FieldName].ToString()!="")
{
Record[i] = dreader[FieldName].ToString();
i++;
}
}
dreader.Close();
cehuiConn.Close();
int j=0,k=0;
string strJS;
string strArray = "jsArray"+m;
strJS="<script>var "+strArray+" = new Array("+i+");\n";
for(j=0;j<i;j++)
{
if(Record[j].ToString()!="")
{
strJS+=strArray+"["+k+"]='"+Record[j].ToString()+"';\n";
k++;
}
}
strJS+="</script>";
Response.Write(strJS);
}
}

你自己好好的研究一下,我不多说了
qdkcy 2002-11-30
  • 打赏
  • 举报
回复
我刚做完,可以给你一段代码,你自己研究吧!主要是在后台用C#将数据从数据库读出来,然后存到前台的数组里去,在前台对数组进行查询。

.aspx代码:
var Txt;
function BindArray(obj1,obj2){
var txtID = obj1;
Txt = obj1;
var ArrayName = obj2.concat();
if(document.activeElement.id==txtID.id)
{
var TextValue = txtID.value;
var i=0;
var j=0;
document.CeHui1.listmember.length = 0;
for(i=0;i<ArrayName.length;i++)
{
if(ArrayName[i].toString().indexOf(TextValue,0)>-1)
{
var listvalue = ArrayName[i];
document.CeHui1.listmember.add(new Option(listvalue,listvalue));
}
}
}
}

function TextKeyDown(){
if(event.keyCode==13)
{
document.CeHui1.listmember.focus();
document.CeHui1.listmember.options(0).selected;
return false;
}
}

function listKeyDown(){
if(event.keyCode==9)
Txt.focus();
}

function listChange(obj){
var listObj = obj(obj.selectedIndex).text;
Txt.value = listObj;
}

<TD vAlign="top" align="left"><SELECT id="listmember" onkeydown="listKeyDown()" onchange="listChange(this)" size="8" name="listmember">
<OPTION></OPTION>
</SELECT></TD>

<TD colSpan="1">
<INPUT type="text" id="jflxrTxt" name="jflxrTxt" onpropertychange="BindArray(this,jsArray2)" onkeydown="return TextKeyDown()"></TD>

.cs代码:
public void SqlDataBind()
{
int m=0;
int i=0;
string [] selsql = new String [5];
for(m=0;m<5;m++)
selsql[m] = "select distinct ";
selsql[0] += "委托单位 from yantu";
selsql[1] += "工程名称地点 from yantu";
selsql[2] += "甲方联系人 from yantu";
selsql[3] += "院经手人 from yantu";
selsql[4] += "工程负责人 from yantu";
System.Data.SqlClient.SqlDataReader dreader;
for(m=0;m<5;m++)
{
i=0;
cehuiDa = new System.Data.SqlClient.SqlDataAdapter(selsql[m],cehuiConn);
cehuiConn.Open();
dreader = cehuiDa.SelectCommand.ExecuteReader();
string [] Record = new string [ProCount];
string FieldName = dreader.GetName(0);
while(dreader.Read())
{
if(dreader[FieldName].ToString()!="")
{
Record[i] = dreader[FieldName].ToString();
i++;
}
}
dreader.Close();
cehuiConn.Close();
int j=0,k=0;
string strJS;
string strArray = "jsArray"+m;
strJS="<script>var "+strArray+" = new Array("+i+");\n";
for(j=0;j<i;j++)
{
if(Record[j].ToString()!="")
{
strJS+=strArray+"["+k+"]='"+Record[j].ToString()+"';\n";
k++;
}
}
strJS+="</script>";
Response.Write(strJS);
}
}

你自己好好的研究一下,我不多说了
qdkcy 2002-11-14
  • 打赏
  • 举报
回复
那么能将数据库缓存到本地,然后再进行查询等,这样就可以不必频繁的和服务器打交道了,这样可以吗?如果可以,又怎样实现呢?
如果不行,有没有更好的方法可以实现我说的功能呢?如果没有,那麻烦你给我说说现行的怎么做?
孟子E章 2002-11-14
  • 打赏
  • 举报
回复
请参考
http://www.ccw.com.cn/htm/center/prog/02_6_13_2.asp
孟子E章 2002-11-14
  • 打赏
  • 举报
回复
不挺地去和数据库打交道,你的数据库是本地的吗?否则,没有必要那么做
qdkcy 2002-11-14
  • 打赏
  • 举报
回复
也就是说,这个listbox1要求动态的生成。麻烦各位了。
qdkcy 2002-11-14
  • 打赏
  • 举报
回复
不好意思,你们的做法是完全正确的,我想我的提问可能还没有完全,我想做的是:我想把textbox1里输入的句子作为模糊查询的条件,如果在数据库里有包含这个句子的纪录,则选择其中的一个字段作为listbox1的一个item,请问这个该怎样实现,要求是每当textbox1里输入完一个字符(包括汉字),不需要回车或其他按键,则listbox1里就会查询到包含着各字符的字段,并作为它的一个item,请问这怎样实现?
我刚开始学javascrip,请大家扶我一把,最好有源代码。谢谢了
wangxj0600 2002-11-14
  • 打赏
  • 举报
回复
onkeyupd
秋水长天1 2002-11-14
  • 打赏
  • 举报
回复
<input name=txt1 onpropertychange=txt2.value=this.value>
<input name=txt2>
freefalcon 2002-11-14
  • 打赏
  • 举报
回复
<input name=txt1 onkeyup=txt2.value=this.value>
<input name=txt2>

87,955

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧