在 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# 或 JQuery 中处理 OnClick

哪个是更好的做法?

您的功能要求是什么?

  • 在 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 更改输入字段的类型