【问题标题】:Change TextBox TextMode with jQuery使用 jQuery 更改 TextBox TextMode
【发布时间】:2011-02-22 21:04:26
【问题描述】:

我想知道是否有人知道从使用

切换的最佳方法
    myTextBox.TextMode = TextBoxMode.Password;

  myTextBox.TextMode = TextBoxMode.SingleLine;

使用客户端代码和 jQuery。我将不得不在焦点上执行此操作,同时删除文本框 onFocus 事件的整个文本内容。

【问题讨论】:

    标签: jquery asp.net


    【解决方案1】:
    $('#idOfYourTextbox').attr('type', 'text');
    

    但是,您不能在 IE 中更改 type="password" 字段的类型(对无用的“安全”功能表示欢迎)。

    【讨论】:

    • 这很好,因为我不需要从密码切换到文本再返回 - 只需从密码切换到文本一次。所以听起来它会起作用......
    • 我从 jQuery 框架中得到 type property can't be changed 异常。有什么想法吗?
    • 正如我所说,您无法在 IE 中将 password 转换为 text。您必须使用 .val() 检索该值,删除该元素并将其替换为新元素。
    【解决方案2】:

    这些 web 控件呈现完全不同:模式 SingleLine 的 TextBox 呈现为 type=text 的输入元素,TextMode.Password 将呈现更改为 type=password 的输入元素。

    所以虽然在 asp.net 中它是单个属性,但在 jquery 中你将不得不更改属性类型:

    $('input.someclass').attr('type','password');

    但是有一些安全限制。另见this question

    如果您还想更改为 TextMode.Multiline,则必须将输入元素更改为 textarea 元素。

    【讨论】:

      【解决方案3】:

      我不认为你可以。最好的办法是有两个文本框,然后将一个隐藏在焦点上并显示另一个然后手动将其聚焦。

      $('input:password').focus(function() {
           $(this).hide();
           $(this).siblings('input:text').show().focus();
      });
      

      这假设它们都在同一个容器中,并且文本框一开始是隐藏的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-07-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-12
        • 2011-05-01
        相关资源
        最近更新 更多