onblur与javascript警报然后清除输入文本

时间:2017-04-09 15:11:47

标签: javascript forms input onblur

现在我尝试使用功能" onblur "使用输入文本中的 javacript

警报消息检查正常。

但是当身份证错误时如何清除输入文字(警告后将其设为空值" 错误的身份证")

并在身份证正确时保持价值。

任何人都可以帮助我。非常感谢你。

这是我的代码



    function checkID(id)
    {
    if(id.length != 13) return false;
    for(i=0, sum=0; i < 12; i++)
    sum += parseFloat(id.charAt(i))*(13-i); if((11-sum%11)%10!=parseFloat(id.charAt(12)))
    return false; return true;}
    
    function checkForm()
    { if(!checkID(document.idform.idcard.value))
    alert('Wrong ID Card');
    document.idform.idcard.value = "";
    }
&#13;
   <form name="idform">
    ID Card Check: <input type="text" name="idcard" maxlength="13" onblur="checkForm();" />
    </form>
    
    
 <br>
  <p>(Correct ID Card = 1100701342240 ) </p>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:0)

有效。当您按警告消息上的确定按钮时,输入字段将清除。你需要在checkForm函数

中多写一行

&#13;
&#13;
function checkForm(){
    if(!checkID(document.idform.idcard.value)){
	    alert('Wrong ID Card');
	    document.idform.idcard.value = "";
    }
}
&#13;
&#13;
&#13;

答案 1 :(得分:0)

最后,我可以解决它。感谢您的每一条评论:)

function checkID(id)
{
if(id.length != 13) return false;
for(i=0, sum=0; i < 12; i++)
sum += parseFloat(id.charAt(i))*(13-i); if((11-sum%11)%10!=parseFloat(id.charAt(12)))
return false; return true;}

function checkForm()
{ if(checkID(document.idform.idcard.value))
return true;
else alert('Wrong ID Card');
document.idform.idcard.value = "";
}
<form name="idform">
ID Card Check: <input type="text" name="idcard" maxlength="13" onchange="checkForm();" required/>
</form>

<br>

<p>Test with one in a million of Correct ID : 1100701342240 </p> <p>If put another random ID it will alert "Wrong ID" </p>