在 C# 或 JQuery 中处理 OnClick
本文关键字:处理 OnClick JQuery | 更新日期: 2023-09-27 17:56:35
我正在使用c#/aspx/jquery处理一个webforms项目。我不确定在哪里处理我的Onclick
.这两种选择(在 C# 或 jquery 中执行此操作)似乎都是可行的。哪个是更好的做法?
场景如下:
我想构建一个checkbox
,它将切换textbox's textmode
,在密码和单行之间更改它。
目前,我的标记有以下代码,因为我目前正在 C# 中处理它:
<asp:Checkbox ID="CheckBox1" OnCheckedChanged="CheckBox1_OnCheckedChanged"/>
代码:
protected virtual void OnCheckedChange(EventArgs e)
{
If (CheckBox1.TextMode == TextMode.Password)
CheckBox1.TextMode = TextMode.SingleLine;
else
CheckBox1.TextMode = TextMode.Password;
}
这样做的用例是:用户正在输入他的密码。在同一页面上,他可以通过选中复选框来选择隐藏或不隐藏密码。
哪个是更好的做法?
您的功能要求是什么?
- 在 C# 中对 asp.net 代码隐藏进行设置,您将需要回发才能使其正常工作。这意味着页面将刷新,文本框将更改。
- 在客户端 (JS/JQuery) 上,页面不会刷新。
现在,您可以评估所需的工作与所需的质量。(如果你想要一个良好的用户体验并且可以编写JS,把它放在JS中,如果你时间紧迫并且对刷新感到满意,那就在 asp.net 上做吧)。
我试图从一般意义上回答你的问题,即应该如何做出这样的决定(以我的拙见)。 实际上,这在javascript中实现非常简单,你应该在那里做。
现在对于代码(我假设您知道如何将其放入后面 asp.net 代码中,所以我将编写JS方法):
目录:
My Password: <input type="password" id="mytext" /> <br />
Hide Chars : <input id="passChk" type="checkbox" checked="true" />
Javascript:
$(function() {
$("#passChk").change(function(){
if(this.checked) {
$("#mytext").attr("type","password");
} else {
$("#mytext").attr("type","text");
}
});
});
看到它在这里运行:http://jsfiddle.net/rC5NW/2/
在尝试实现接受的答案后,我意识到某些浏览器(我使用谷歌浏览器)不允许更改类型属性。有一种方法可以绕过这一点,但我认为这对我的目的来说是不值得的:
因此,最好只使用 C#。
相关问题
- javascript 是否禁止将输入类型从密码或密码更改为密码?
- 使用 jQuery 更改输入字段的类型