我正在使用AjaxControlToolKit的PasswordStrength控件。一旦用戶開始在控件中輸入任何內容,它就會開始顯示密碼較弱的消息。我希望這個消息只在輸入最小數量的字符後纔會出現。在控件上我沒有看到任何允許此功能的東西。我應該如何處理這個問題的任何建議?如何只在最少字符後檢查密碼強度?
回答
您可能需要爲此推出自己的解決方案,如果您仔細考慮,那麼這很有意義。通過隱藏兩個字符的密碼較弱的視覺提示,但將其顯示爲三個字符的密碼似乎意味着兩個字符的密碼就足夠了。
話雖這麼說你可能能夠做的是寫某種黑客與此類似:
<script language="javascript">
function onPasswordChange(textBox) {
var passwordLabel = document.getElementById([labelID]);
if(textBox.value.length < [constant]){
passwordLabel.style.display = 'none';
}
else{
passwordLabel.style.display = 'inline';
}
}
</script>
然後,您可以附加此功能的控制
變化
的onkeyup或onKeyDown事件使如果密碼字段的長度小於你想要的長度,它將隱藏包含強度未被滿足的消息的標籤。這未經考驗只是一個想法。你可能會從工具包javascript中碰到這個腳本,但很難說。
此外,labelID看起來是[controlIDName] _PasswordStrength。
編輯:
你可能會想在
平變化
的onkeyup或onKeyDown事件添加到您的控制,像這樣(代碼後面):
control.Attributes.Add( 「平變化」,「 onPasswordChange(這)「);
control.Attributes.Add("onKeyDown", "onPasswordChange(this)");
編輯2: 至於黑客去,這是非常混亂,但它的工作原理。客戶方:
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:TextBox ID="password" runat="server"></asp:TextBox>
<div id="PasswordStrengthContainer"></div>
<asp:PasswordStrength ID="PS" runat="server"
TargetControlID="password"
DisplayPosition="RightSide"
StrengthIndicatorType="Text"
PreferredPasswordLength="10"
PrefixText="Strength:"
TextCssClass="TextIndicator_TextBox1"
MinimumNumericCharacters="0"
MinimumSymbolCharacters="0"
RequiresUpperAndLowerCaseCharacters="false"
TextStrengthDescriptions="Very Poor;Weak;Average;Strong;Excellent"
TextStrengthDescriptionStyles="cssClass1;cssClass2;cssClass3;cssClass4;cssClass5"
CalculationWeightings="50;15;15;20"
/>
<script language="javascript">
function onPasswordChange(textBox) {
var passwordLabel = document.getElementById("MainContent_password_PasswordStrength");
var container = document.getElementById("PasswordStrengthContainer");
if (passwordLabel != null) {
document.getElementById("PasswordStrengthContainer").appendChild(
document.getElementById("MainContent_password_PasswordStrength"));
}
if (textBox.value.length < 4) {
container.style.display = 'none';
}
else {
container.style.display = 'inline';
}
}
</script>
Serverside集團:
password.Attributes.Add("onKeyDown", "onPasswordChange(this)");
password.Attributes.Add("onBlur", "onPasswordChange(this)");
這個代碼是沒有效率的,並且可以清理,但工程示範的目的。 JavaScript函數是非常基本的,但是你會發現這條線:
if (passwordLabel != null) {
document.getElementById("PasswordStrengthContainer").appendChild(
document.getElementById("MainContent_password_PasswordStrength"));
}
不幸的是JavaScript函數將火災後您的功能,所以在顯示設置爲「無」的工具包是通過工具包一掃而光。這段代碼的作用是從頁面中移除標籤並將其放置在div中,然後我們只需將div的顯示屬性設置爲任何內容,這將有效地隱藏標籤。但是有一個奇怪的錯誤:當按退格刪除字符時,div在某些情況下不會消失。我真的沒有時間來追蹤這個問題,但清理它應該是微不足道的。
此外,我在Chrome中使用onChange出現了一些問題,所以選擇了onKeyDown,而不是像@Adriano上面指出的那樣。
附加到客戶端
change
keyup
事件的文字輸入。您可以在TextCssClass
(如果您正在使用文本)中添加/刪除一個特殊的CSS類,但只有一條規則:display: none
(使用文本長度作爲條件)。
你能給一個例子說明如何使用條件嗎? – 4thSpace
@ abszero提供的@ 4thSpace代碼是很好的,「更改」事件是相當難以捉摸的。將您的事件處理程序附加到「keyup」事件(這是PasswordStrength控件的作用:http://ajaxcontroltoolkit.codeplex.com/SourceControl/changeset/view/2c482e5ad6c4#Client%2fMicrosoftAjax.Extended%2fPasswordStrength%2fPasswordStrengthExtenderBehavior.pre.js)。 –
注意:我更喜歡使用TextCssClass屬性直接訪問帶有getElementById的標籤,因爲如果控件中的某些內容發生更改,它就不會被破壞,但它仍然可以工作。 –
- 1. 如何檢查密碼強度?
- 2. 密碼強度檢查
- 3. 檢查密碼強度
- 4. 密碼強度檢查器
- 5. 檢查密碼的強度
- 6. 密碼強度檢查器在android中
- 7. ExtJs密碼強度檢查程序
- 8. Python tkinter密碼強度檢查gui
- 9. jQuery密碼強度檢查器
- 10. 密碼強度檢查蟒蛇
- 11. 如何檢查密碼長度在sql
- 12. 密碼強度計指南(密碼檢查器)設計
- 13. 檢查密碼最小長度
- 14. 密碼強度
- 15. 檢查字符串足夠強的密碼
- 16. 角度js ng-keyup不能用於密碼強度檢查
- 17. 查看只行少於/長度然後...字符
- 18. 一個算法檢查密碼的強度在c/c + +
- 19. 那麼創建儀表來檢查密碼強度在PHP?
- 20. 密碼強度JavaScript
- 21. 密碼強度JQuery
- 22. 密碼強度計
- 23. sql:如何測試密碼強度
- 24. 如何在錄音時檢查音頻的強度(強度)?
- 25. Javascript:檢查最小字符串長度
- 26. 指令,檢查密碼強度和確認匹配
- 27. 使用GWT RequestBuilder與Google檢查密碼強度
- 28. 安卓密碼強度檢查器與seekbar
- 29. 使用自定義驗證程序檢查密碼強度
- 30. jQuery表單驗證與密碼強度檢查
*「似乎暗示着兩個字符的密碼就足夠了」*在系統中,兩個字符的密碼是*非法*。由於它根本無法完成,所以強弱無關並不重要。也有可能有消息表明「你沒有達到最小字符限制」,它同時消失。 – Servy
我明白這一要求,但我所說的是,如果控件在用戶輸入第三個字符之前不向用戶顯示警告,那麼它會給用戶一個雙字符密碼有效的印象。我同意一個信息,即最短長度未被滿足將是一個可以接受的替代品,不會顯示任何內容。 – dparsons
輸入小於字符的最小要求後,一旦用戶跳出並進入確認密碼文本框,它將顯示關於最小值的錯誤消息。 – 4thSpace