asp.net textbox的textchange事件!现在遇到如下问题:

2025-01-01 15:26:06
推荐回答(4个)
回答1:

你是想移出文本框的时候就执行textchange事件?然后单击按钮的时候就执行单击事件?
你把textchange这个事件的文本框的autopostback的值设为true即可。但这样做当你离开文本框的时候就会立即触发textchange事件。
如果你离开文本框后直接点击按钮,还是会先触发textchange事件,因为autopostback这个值设置了TURE的原因,所以不会立即执行CLICK事件。除非你将autopostback的值设为true设为FLASH,但是这样做你文本框发生变化后,鼠标离开文本框的时候不会触发事件,只有当单击BUTTON的时候,这时候会同时触发textchange和CLICK这2个事件,当然textchange还是优先于CLICK事件 .
如果你非要这么做是可以的
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>




无标题页







<%--
--%>








后台:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
//this.TextBox2.Text = this.TextBox1.Text;
}

protected void Button1_Click(object sender, EventArgs e)
{
Response.Write("asdfasdf");
}
}
已经测试过了,没问题。

回答2:

你还没了解asp.net的机制,这个涉及到回发的问题。
首先,web应用程序和windows应用程序是不一样的,asp.net的程序都是在服务器端执行的。
你改变了textbox的值,但是服务器这时候并不知道你修改了textbox的值,只有当你把textbox置成autopostback=true的时候,即失去焦点的时候,才会递交到服务器端。这时候,系统才会判别到文本框里的内容变化了,于是才会执行textchange事件,这个和windows form差别所在。同理,你点击按钮的时候,也会触发textchange事件,因为点击按钮相当于进行了一次回发。
而且我看到你的代码里边并没有onclick事情,你点击按钮,应该触发的是onblur失去焦点的时间。

回答3:

你鼠标移开后,输入指针仍然的输入框里,所以输入框并没有失去焦点,你鼠标在任何一个地方点一下(包括你说的button),就会执行textchange事件。这个本来就是这个,你要想先执行textchange的话,就要输入完后在输入框的空白处点一下,再点按扭。
其实这个也不是什么问题,因为很多输入都是这样设计的,输入完后在旁边点一下,让输入框失去焦点。
或者你找下textbox的输入事件,边输入边触发的。

回答4:

你要仅仅是把他的值赋给另一个textbox,用js就可以实现了吧,用后台多麻烦啊