第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

在學習js制作表單登錄界面遇到的問題

我發(fā)現(xiàn)一個問題,在登錄框輸入正確的登錄名后,我單擊輸入框外面,登錄框是提示成功了,但是當我沒有改變登錄框中的值,只是在框中單擊了一下,在再登錄框外面單擊一下,登錄框就提示我輸入的登錄名不合法了,這是怎么回事呢?怎么處理這個問題呢?


正在回答

3 回答

這個是正則使用的問題。

????????var?pw?=?/^[a-zA-Z]{1}[\w\d]{4,7}$/g;
//當鼠標離開時發(fā)生的事件
//判斷登錄名事件
????????d_input.onblur?=?function?()?{
????????????var?re?=?/^[\u4e00-\u9fa5]{3}$/g;
????????????if?(re.test(this.value))?{
????????????????dp.innerHTML?=?"OK!";
????????????????dp.style.color?=?"green";
????????????????d_i.style.visibility?=?"hidden";
????????????}?else?if?(this.value?==?"")?{
????????????????dp.innerHTML?=?"登錄名不能為空!";
????????????????dp.style.color?=?"red";
????????????????d_i.style.visibility?=?"hidden";
????????????}else?{
????????????????dp.innerHTML?=?"登錄名使用三個中文";
????????????????dp.style.color?=?"red";
????????????}
????????};

這里是把

var?re?=?/^[\u4e00-\u9fa5]{3}$/g;???//移動到了d_input.onblur里面。

因為如果放到外面的話 ?re.test(this.value) 的值會一次true 一次false ?交替著出現(xiàn)。即使this.value的值一直是3個中文。詳細的原因你可以去查一下正則表達的用法 ,尤其是關(guān)于全局匹配的(g)

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

qq_小柯_1 提問者

好的,我這就去查看,謝啦!!☆⌒(*^-゜)v
2015-11-05 回復(fù) 有任何疑惑可以回復(fù)我~

html代碼

58.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

<head>

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">

<title>Document</title>

<link rel="stylesheet" type="text/css" href="58.css">

<script type="text/javascript" src="58.js"></script>

</head>

<body>

<div id="main">

<div>

<label>

<span>

&nbsp;&nbsp;登錄名:

</span>

<input type="text"/>

</label>

<p>只能輸入三個中文名作為登錄名!</p>

<i>0個中文</i>

</div>

<div>

<label>

<span>

&nbsp;&nbsp;&nbsp;&nbsp;密碼:

</span>

<input type="text"/>

</label>

<p >要求密碼在5到8個字符之間,不能為中文,開頭為英文,其余的是數(shù)字或者為英文</p>

? ?<i>0個字符</i>

</div>

<div>

<label>

<span>

確認密碼:

</span>

<input type="password"/>

</label>

<p></p>

</div>

<input type="submit" id="submit"/>

</div>

</body>

</html>

58.js

//排除是否全是數(shù)字或者一個字符

function getStr(str,n){

var num=0;

for(var i=0;i<str.lengthl;i++){


if(str.charAt(i)==n){

? ? ? ? ? ? ? ? ?num++;

}

}

return num;

}

//若為漢字這以兩個字符計算

function getLength(str){

return str.replace(/[^\x00-xff]/g,"xx").length;

}

var length=0;

? ? ? ?window.onload=function(){

? ? ? ? ? //獲取P的對象集合

? ? ? ? ? var ps=document.getElementsByTagName("p");

? ? ? ? ? //獲取登錄名的提示語

? ? ? ? ? var dp=ps[0];

? ? ? ? ? //獲取密碼的提示語

? ? ? ? ? var pp=ps[1];

? ? ? ? ? //獲取確認密碼的提示語

? ? ? ? ? var zpp=ps[2];


? ? ? ? ? //獲取input的對象集合

? ? ? ? ? var inputs=document.getElementsByTagName("input");

? ? ? ? ? //獲取登錄名的對象

? ? ? ? ? var d_input=inputs[0];

? ? ? ? ? //獲取密碼框?qū)ο?/p>

? ? ? ? ? var p_input=inputs[1];

? ? ? ? ? //獲取確認密碼框?qū)ο?/p>

? ? ? ? ? var zp_input=inputs[2];

? ? ? ? ? //獲取計數(shù)i的對象集合

? ? ? ? ? var counts=document.getElementsByTagName("i");

? ? ? ? ? //獲取登錄名的計數(shù)i的個數(shù)

? ? ? ? ? var d_i=counts[0];

? ? ? ? ? //獲取密碼的計數(shù)個數(shù)

? ? ? ? ? var pw_i=counts[1];

? ? ? ?


? ? ? ? ? //鼠標進入到登錄框時提示語出現(xiàn)

? ? ? ? ? d_input.onfocus=function(){

? ? ? ? ? dp.style.visibility="visible";

? ? ? ? ? };

? ? ? ? ? //鼠標進入密碼框時提示語出現(xiàn)

? ? ? ? ? p_input.onfocus=function(){

? ? ? ? ? pp.style.visibility="visible";

? ? ? ? ? };

? ? ? ? ? //匹配登錄名的正則表達式

? ? ? ? ? var re=/^[\u4e00-\u9fa5]{3}$/g;

? ? ? ? ? var pw=/^[a-zA-Z]{1}[\w\d]{4,7}$/g;

? ? ? ??

? ? ? ??

? ? ? ? ? //當鼠標離開時發(fā)生的事件

? ? ? ? ? //判斷登錄名事件

? ? ? ? ?d_input.onblur=function(){

? ? ? ? ? ?if(re.test(this.value)){

? ? ? ? ? ? dp.innerHTML="OK!";

? ? ? ? ? ? dp.style.color="green";

? ? ? ? ? ? d_i.style.visibility="hidden";

? ? ? ? ? ?}else if(this.value==""){

? ? ? ? ? ? dp.innerHTML="登錄名不能為空!";

? ? ? ? ? ? dp.style.color="red";

? ? ? ? ? ? d_i.style.visibility="hidden";

? ? ? ? ? ?}

? ? ? ? ? ?else{

? ? ? ? ? ? dp.innerHTML="登錄名使用三個中文";

? ? ? ? ? ? dp.style.color="red";

? ? ? ? ? ?}

? ? ? ? ?};

? ? ? ? ?//密碼框鼠標離開時判斷密碼是否錯誤

? ? ? ?p_input.onblur=function(){

? ? ? ? ?if(pw.test(this.value)){

? ? ? ? ? pp.innerHTML="OK!";

? ? ? ? ? ? pw_i.style.visibility="hidden";

? ? ? ? ? pp.style.color="green";

? ? ? ? ?}else if(this.value==""){

? ? ? ? ? ? pw_i.style.visibility="hidden";

? ? ? ? ? ? pp.innerHTML="密碼不能為空!";

? ? ? ? ? ? pp.style.color="red";

? ? ? ? ? }

? ? ? ? ? else{

? ? ? ? ? pp.innerHTML="5到8個字符之間,不能為中文,開頭為英文,其余的是數(shù)字或者為英文";

? ? ? ? ? pp.style.color="red";

? ? ? ? ?}

? ? ? ?};

? ? ? ? //登錄名的中文個數(shù)記錄

? ? ? ? d_input.onkeyup=function(){

? ? ? ? d_i.style.visibility="visible";

? ? ? ? var length=getLength(this.value);

? ? ? ? ? ? d_i.innerHTML=length/2+'個中文';

? ? ? ? ? ? if(length==1){

? ? ? ? ? ? d_i.style.visibility="hidden";

? ? ? ? ? ? }

? ? ? ? };

? ? ?//密碼的字符個數(shù)記錄

? ? ?p_input.onkeyup=function(){

? ? ? ? ?pw_i.style.visibility="visible";

? ? ? ? ?var length=getLength(this.value);

? ? ? ? ?pw_i.innerHTML=length+'個字符';

? ? ?};

? ? ?//再次確認密碼是否匹配

? ? ?zp_input.onblur=function(){

? ? ? ? ?if(this.value==p_input.value){

? ? ? ? ? ? ?zpp.style.visibility="visible";

? ? ? ? ? ? ?zpp.innerHTML="OK!";

? ? ? ? ? ? ?zpp.style.color="green";

? ? ? ? ?}else if(this.value==""){

? ? ? ? ?zpp.style.visibility="visible";

? ? ? ? ? zpp.innerHTML="確認密碼不能為空!";

? ? ? ? ? zpp.style.color="red";


? ? ? ? ?}else{

? ? ? ? ? zpp.style.visibility="visible";

? ? ? ? ? zpp.innerHTML="您輸入的密碼不一致!";

? ? ? ? ? zpp.style.color="red";

? ? ? ? ?}

? ? ?};

58.css

?div,body,label,p,span{

? ? ? ? ? margin: 0px;

? ? ? ? ? padding: 0px;

? ? ? ? ? }

? ? ? ? ? #main{

? ? ? ? ? width: 950px;

? ? ? ? ? height:400px;

? ? ? ? ? margin-left: 400px;

? ? ? ? ? margin-top: 100px;

? ? ? ? ? }

? ? ? ? ? #main div{

? ? ? ? ? float: left;

? ? ? ? ? margin-left: 10px;

? ? ? ? ? width: 930px;

? ? ? ? ? height: 90px;

? ? ? ? ? }

? ? ? ? ?#main label{

? ? ? ? ? float: left;

? ? ? ? ? font-size: 36px;

? ? ? ? ? margin-top: 20px;

? ? ? ? ?}

? ? ? ? ?#main input{

? ? ? ? ? width: 150px;

? ? ? ? ? height: 30px;

? ? ? ? ?}

? ? ? ? ?#main p{

? ? ? ? ? margin-top: 40px;

? ? ? ? ? visibility: hidden;

? ? ? ? ?}

? ? ? ?#submit{

? ? ? ? float: left;

? ? ? ? margin-left: 180px;

? ? ? ?}

? ? ? ?.count{

? ? ? ? float: left;

? ? ? ? clear: both;

? ? ? ? margin-left:230px;

? ? ? ? display: block;

? ? ? ? visibility: hidden;



? ? ? ?}


? ? ? ?};


0 回復(fù) 有任何疑惑可以回復(fù)我~

出了問題最好是貼一下代碼,別人才能看出原因,猜出來的可能性不大。

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

qq_小柯_1 提問者

嗯呢,我這就貼
2015-11-04 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消
表單驗證
  • 參與學習       53320    人
  • 解答問題       261    個

表單驗證是JavaScript中的高級選項之一,輸入框的驗證

進入課程

在學習js制作表單登錄界面遇到的問題

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號