2016-12-20 3 views
0

Надеюсь, я не повторяю вопрос, но я искал его и не мог найти помощь, поэтому я подумал, что мне следует попросить прямо, я все еще новичок, и это задание для мой класс, пожалуйста, будьте как можно более глубокими.вызовите функцию JS внутри метода события

Я пытаюсь создать форму, где, когда пользователь нажимает на другое поле, он проверяет, является ли вход, который он помещает в первый, как требуется веб-сайту, нажмите кнопку «Ввод» или кнопку «Отправить».

это HTML-файл.

<html> 
<head> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
<script src="test.js"></script> 
<script> 

$(document).ready(function(){ 
    $("div.ID").focusin(function(){ 
     $(this).css("background-color", "#FFFFCC"); 
    }); 
    $("div.ID").focusout(function(){ 
     $(this).css("background-color", "#FFFFFF"); 
     userid_validation(userid,5,12); 

    }); 
}); 
</script> 
</head> 
<body> 

<div class="ID" > 
    User ID: <input type="text" name="userid" size="12" /> 
</div> 

<div class="pass"> 
Password: <input type="text" name="psw" size="12" /> 
</div> 

</body> 
</html> 

и это файл JS

function userid_validation(userid,mx,my) 
{ 
var uid_len = userid.value.length; 

if (uid_len == 0 || uid_len >= my || uid_len < mx) 
{ 

alert("User Id should not be empty/length be between "+mx+" to "+my); 

//uid.focus(); 
return false; 
} 

return true; 
} 

Я, скорее всего, делать что-то совершенно неправильно, но я не знаю, что. заранее спасибо !

+0

Что именно проблема с этим кодом? –

+0

Userid is undefined ... –

+0

проблема в том, что она не переходит к функции, я пытаюсь сделать сообщение pop, если пользователь ввел неправильное количество символов в поле идентификатора пользователя. – user3158009

ответ

1

Необходимо ввести focusin и foucsout на входные элементы. В настоящее время вы применили его на div. Также у вас есть ошибка кода при вызове следующей функции,

userid_validation(userid, 5, 12); // userid not defined. 

Пожалуйста, проверьте это.

function userid_validation(userid, min, max) { 
 
    var uid_len = userid.length; 
 

 
    if (uid_len == 0 || uid_len > max || uid_len < min) { 
 

 
    alert("User Id should not be empty/length be between " + min+ " to " + max); 
 

 
    //uid.focus(); 
 
    return false; 
 
    } 
 

 
    return true; 
 
}
<html> 
 

 
<head> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
    <script src="test.js"></script> 
 
    <script> 
 
    $(document).ready(function() { 
 
     $("div.ID").find('input').focusin(function() { 
 
     $(this).css("background-color", "#FFFFCC"); 
 
     }); 
 
     $("div.ID").find('input').focusout(function() { 
 
     $(this).css("background-color", "#FFFFFF"); 
 
     userid_validation($(this).val(), 5, 12); 
 

 
     }); 
 
    }); 
 
    </script> 
 
</head> 
 

 
<body> 
 

 
    <div class="ID"> 
 
    User ID: 
 
    <input type="text" name="userid" size="12" /> 
 
    </div> 
 

 
    <div class="pass"> 
 
    Password: 
 
    <input type="text" name="psw" size="12" /> 
 
    </div> 
 

 
</body> 
 

 
</html>

+0

он по-прежнему не проверяет, находится ли текст ввода между 5 и 12. сообщение не появляется – user3158009

+0

@ user3158009 сейчас. в вашем коде, который вы использовали .length, чтобы он не проверял фактическое значение. Я удалил длину, чтобы проверить ваш фактический контент. – ScanQR

+0

нет, все еще не работает печально. – user3158009

Смежные вопросы