onblur с предупреждением javascript, затем очистить вводимый текст

Теперь я пытаюсь использовать функцию "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 = "";
    }
   <form name="idform">
    ID Card Check: <input type="text" name="idcard" maxlength="13" onblur="checkForm();" />
    </form>
    
    
 <br>
  <p>(Correct ID Card = 1100701342240 ) </p>


person Pond Smitty    schedule 09.04.2017    source источник
comment
document.idform.idcard.value='', Установить пустое значение   -  person Satpal    schedule 09.04.2017
comment
ой спасибо большое ххх. Но когда удостоверение личности правильное, значение по-прежнему пустое, TT, может быть, мне нужно указать другое... ; Правильно?   -  person Pond Smitty    schedule 09.04.2017


Ответы (2)


Оно работает. Когда вы нажимаете кнопку OK в предупреждающем сообщении, поле ввода очищается. вам нужно написать еще одну строку в функции checkForm

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

person Jitu Raiyan    schedule 09.04.2017
comment
но когда проверка id верна, значение тоже пустое - person Pond Smitty; 09.04.2017
comment
Я исправляю это сейчас. Я тоже помещаю строку внутрь, если условие - person Jitu Raiyan; 09.04.2017
comment
извините, не могли бы вы объяснить больше, я очень новичок в javascript - person Pond Smitty; 09.04.2017
comment
Можете ли вы рассказать мне больше о ваших требованиях к валидации? Тогда я смогу правильно решить вашу проблему. Я неправильно понял механизм вашей функции checkID. - person Jitu Raiyan; 09.04.2017
comment
эмм.. Теперь я могу сделать его пустым, когда он предупреждает о неправильном удостоверении личности. Но не может сохранить значение, когда ID-карта правильная: ( stackoverflow.com/a/43309641/7642383 - person Pond Smitty; 09.04.2017
comment
function checkForm(){ if(document.idform.idcard.value != 1100701342240){ alert('Неверное удостоверение личности'); документ.idform.idcard.value = ; } } Здесь, если вы введете правильный идентификатор для размытия, ничего не произойдет (введенное значение не очищается), и если вы введете правильный идентификатор, тогда появится предупреждающее сообщение, и когда вы нажмете OK, значение будет установлено на 0. - person Jitu Raiyan; 09.04.2017
comment
спасибо за ваше предложение, но правильная идентификационная карта не только 1100701342240. Это единственное из миллиона правильное удостоверение личности. - person Pond Smitty; 09.04.2017
comment
Здесь ваша функция checkID оценивает ввод правильно/неправильно, возвращая true/false. Внутри функции checkID вы добавляете свою функциональность для оценки ввода (истина/ложь). И функция checkForm показывает предупреждающее сообщение, если checkID возвращает true, иначе ничего не делать. Это очень просто. Ничего сложного. - person Jitu Raiyan; 09.04.2017

Наконец, я могу это решить. Спасибо за каждый комментарий :)

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>

person Pond Smitty    schedule 09.04.2017