Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么onTextChanged不在ASP.net中工作_C#_Asp.net - Fatal编程技术网

C# 为什么onTextChanged不在ASP.net中工作

C# 为什么onTextChanged不在ASP.net中工作,c#,asp.net,C#,Asp.net,我的ASP.net页面中有以下文本框: <asp:TextBox OnTextChanged="maxchar" ID="txtName" Width="95%" runat="server"></asp:TextBox> 当我在文本框中输入文本并超过25个字符时,标签中不会显示任何内容。如何修复它?只有在回发期间才会发生ContextChanged 您需要添加javascript来完成您想做的事情,因为javascript在本地运行,不需要回发 如果您不需要javas

我的ASP.net页面中有以下文本框:

<asp:TextBox OnTextChanged="maxchar" ID="txtName" Width="95%" runat="server"></asp:TextBox>

当我在文本框中输入文本并超过25个字符时,标签中不会显示任何内容。如何修复它?

只有在回发期间才会发生ContextChanged

您需要添加javascript来完成您想做的事情,因为javascript在本地运行,不需要回发


如果您不需要javascript,则必须等待用户提交页面,这是对无javascript网页不可避免的限制。

OnTextChanged仅在回发期间发生

您需要添加javascript来完成您想做的事情,因为javascript在本地运行,不需要回发


如果你不想要javascript,你将不得不等待用户提交页面,这是对无javascript网页不可避免的限制。

非常确定应该更改文本,而OnTextChanged应该是一个javascript调用(我相信)。无论哪种方式,您都应该在JS中这样做。应避免在每个文本更改事件上调用服务器

在jQuery中,您可以

$('#txtTime').changed(function(){
    // do event logic here
});

现在希望您正在使用jQuery。如果没有,我可以更新为香草JS

非常确定应该是TextChanged,而OnTextChanged应该是一个JavaScript调用(我相信)。无论哪种方式,您都应该在JS中这样做。应避免在每个文本更改事件上调用服务器

在jQuery中,您可以

$('#txtTime').changed(function(){
    // do event logic here
});

现在希望您正在使用jQuery。如果没有,我可以更新为香草JS

您是否尝试过在asp:TextBox声明中设置autopostback=“true”?一个快速搜索也出现了,也许会有一些帮助

您是否尝试过在asp:TextBox声明中设置autopostback=“true”?一个快速搜索也出现了,也许会有一些帮助

在这种情况下,对于最大长度,应该使用名为MaxLength=“25”的asp:textbox属性

但是,如果您想向用户发送消息,我建议使用JQuery,这很简单:

$('#txtName').keyDown(function(){
     if($(this).length >= 25){
        //you alert
     }; 
});

在这种情况下,对于最大长度,应该使用名为MaxLength=“25”的asp:textbox属性

但是,如果您想向用户发送消息,我建议使用JQuery,这很简单:

$('#txtName').keyDown(function(){
     if($(this).length >= 25){
        //you alert
     }; 
});


我试图避免,因为用户可能会禁用JS:/@SiKni8:如果您不想等待回发,也不想使用JS,那么就没有办法做到这一点。您可以尝试让文本框发回每个字符,但这样做不太好。除非您每次都想发回(这太荒谬了),否则您必须使用JS。@BenBlack:等待提交并不太糟糕,如果我在浏览器中禁用JS,这是我所期望的。@Guvante-这不一定是真的。如果他使用的是HTML5,他可以在文本框中添加“required”属性和“maxlength”属性。看到一个我试图避免的问题,因为用户可能会禁用JS:/@SiKni8:如果您不想等待回发,也不想使用JS,那么就没有办法做到这一点。您可以尝试让文本框发回每个字符,但这样做不太好。除非您每次都想发回(这太荒谬了),否则您必须使用JS。@BenBlack:等待提交并不太糟糕,如果我在浏览器中禁用JS,这是我所期望的。@Guvante-这不一定是真的。如果他使用的是HTML5,他可以在文本框中添加“required”属性和“maxlength”属性。查看JQuery将执行的操作,除非浏览器禁用JS…然后等待用户提交页面并执行服务器端检查。从来没有说过你应该放弃做服务器端验证,只是也许不要强迫用户回复每一个更改。对用户体验来说真的很糟糕。我当然同意你的看法。我将为前端添加JQuery,如果它被禁用,我还将进行服务器检查。我尝试使用HtmlEncode,它一直给我的应用程序一个错误。JQuery会做什么,除非浏览器禁用JS…然后等待用户提交页面并进行服务器端检查。从来没有说过你应该放弃做服务器端验证,只是也许不要强迫用户回复每一个更改。对用户体验来说真的很糟糕。我当然同意你的看法。我将为前端添加JQuery,如果它被禁用,我还将进行服务器检查。我尝试使用HtmlEncode,它一直给我的应用程序一个错误。请记住,如果textbox有textMode=multilyeyeap,MaxLength不起作用!JQuery是最好的方式!(对我来说)。请记住,如果textbox具有textMode=multileyeap,则MaxLength不起作用!JQuery是最好的方式!(对我来说)。