2011-02-22 68 views
1

我想知道,如果有人知道使用的客户端代码和jQuery使用的更改文本框的TextMode与jQuery

myTextBox.TextMode = TextBoxMode.Password; 

切换到

myTextBox.TextMode = TextBoxMode.SingleLine; 

的最佳途径。我将不得不在焦点上做,同时删除文本框onFocus事件的整个文本内容。

回答

4
$('#idOfYourTextbox').attr('type', 'text'); 

但是,您不能变化type="password"领域的IE类型(耶无用的“安全”功能)。

+0

这很好,因为我不需要从密码切换到文本,只需从密码切换到文本一次。所以听起来像它会工作... – dexter 2011-02-22 21:12:53

+0

我得到的类型属性不能改变异常从jQuery框架。有任何想法吗? – dexter 2011-02-22 21:32:01

+0

正如我所说的,你不能在IE中将'password'转换为'text'。您必须使用'.val()'检索该值,删除该元素并将其替换为新元素。 – ThiefMaster 2011-02-22 22:58:15

1

这些webcontrols渲染完全不同:带有模式SingleLine的TextBox呈现为type = text的输入元素,TextMode.Password将呈现更改为type = password的输入元素。

所以,虽然在asp.net它是一个单一的财产,在jQuery中你将不得不更改属性类型:

$( 'input.someclass')ATTR( '型','密码“);

然而存在一些安全限制。另见this question

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

1

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

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

这里假定它们都在同一个容器中并且文本框被隐藏起始。