webForumDet fria alternativet

Använda data från en javascript-funktion i html

0 svar · 250 visningar · startad av SimOnline

SimOnlineMedlem sedan juli 20031 132 inlägg
#1

Tjohej!

Det här är säkert piece of cake för er som kan det här, men jag behöver lite hjälp på traven.

Jag använder en funktion som jag hittade på det stora internätet för att kontrollera hur pass starkt ett lösenord är. Hur plockar jag ut ett värde från den som sedan kan användas för att förhindra att formuläret sänds iväg, och istället skickar upp en liten alert-ruta?

Funktionen för att kontrollera lösenordet ser ut så här:

(function(A){A.extend(A.fn,{pstrength:function(B){var B=A.extend({verdects:["Alldeles för svagt","För svagt","Medium","Ganska starkt","Väldigt starkt"],colors:["#f00","#c06","#f60","#3c0","#3f0"],scores:[10,15,30,40],common:["password","sex","god","123456","123","liverpool","letmein","qwerty","monkey"],minchar:8},B);return this.each(function(){var C=A(this).attr("id");A(this).after("<div class=\"pstrength-minchar\" id=\""+C+"_minchar\">Använd minst "+B.minchar+" tecken, minst en stor och en liten bokstav, en siffra och ett specialtecken (!,@,#,$,%,^,&,*,?,_,~)</div>");A(this).after("<div class=\"pstrength-info\" id=\""+C+"_text\"></div>");A(this).after("<div style=\"width:180px\"><div class=\"pstrength-bar\" id=\""+C+"_bar\" style=\"border: 1px solid white; font-size: 1px; height: 5px; width: 0px;\"></div></div>");A(this).keyup(function(){A.fn.runPassword(A(this).val(),C,B)})})},runPassword:function(D,F,C){nPerc=A.fn.checkPassword(D,C);var B="#"+F+"_bar";var E="#"+F+"_text";if(nPerc==-200){strColor="#f00";strText="Osäkert lösenord!";A(B).css({width:"0%"})}else{if(nPerc<0&&nPerc>-199){strColor="#ccc";strText="För kort";A(B).css({width:"5%"})}else{if(nPerc<=C.scores[0]){strColor=C.colors[0];strText=C.verdects[0];A(B).css({width:"10%"})}else{if(nPerc>C.scores[0]&&nPerc<=C.scores[1]){strColor=C.colors[1];strText=C.verdects[1];A(B).css({width:"25%"})}else{if(nPerc>C.scores[1]&&nPerc<=C.scores[2]){strColor=C.colors[2];strText=C.verdects[2];A(B).css({width:"50%"})}else{if(nPerc>C.scores[2]&&nPerc<=C.scores[3]){strColor=C.colors[3];strText=C.verdects[3];A(B).css({width:"75%"})}else{strColor=C.colors[4];strText=C.verdects[4];A(B).css({width:"92%"})}}}}}}A(B).css({backgroundColor:strColor});A(E).html("<span style='color: "+strColor+";'>"+strText+"</span>")},checkPassword:function(C,B){var F=0;var E=B.verdects[0];if(C.length<B.minchar){F=(F-100)}else{if(C.length>=B.minchar&&C.length<=(B.minchar+2)){F=(F+6)}else{if(C.length>=(B.minchar+3)&&C.length<=(B.minchar+4)){F=(F+12)}else{if(C.length>=(B.minchar+5)){F=(F+18)}}}}if(C.match(/[a-z]/)){F=(F+1)}else{if(C.length<B.minchar){F=-1}else{F=1};return F}if(C.match(/[A-Z]/)){F=(F+5)}else{if(C.length<B.minchar){F=-1}else{F=1};return F}if(C.match(/\d+/)){F=(F+5)}if(C.match(/(.*[0-9].*[0-9].*[0-9])/)){F=(F+7)}else{if(C.length<B.minchar){F=-1}else{F=1};return F}if(C.match(/.[!,@,#,$,%,^,&,*,?,_,~]/)){F=(F+5)}else{if(C.length<B.minchar){F=-1}else{F=1};return F}if(C.match(/(.*[!,@,#,$,%,^,&,*,?,_,~].*[!,@,#,$,%,^,&,*,?,_,~])/)){F=(F+7)}if(C.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/)){F=(F+2)}if(C.match(/([a-zA-Z])/)&&C.match(/([0-9])/)){F=(F+3)}if(C.match(/([a-zA-Z0-9].*[!,@,#,$,%,^,&,*,?,_,~])|([!,@,#,$,%,^,&,*,?,_,~].*[a-zA-Z0-9])/)){F=(F+3)}for(var D=0;D<B.common.length;D++){if(C.toLowerCase()==B.common[D]){F=-200}}return F}})})(jQuery)

Och det får jag in på sidan med den här koden ovanför lösenordsfältet:

<script type="text/javascript" src="http://***.***.***/js/jquery.pstrength-min.1.2.js"></script>
<script type="text/javascript">
$(function() {
$("#password").pstrength();
});
</script>

Ni som kan, hur gör jag? :)

128 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)