Как проверить форму, используя javascript, чтобы пользователь вводил хотя бы минимальное количество требуемых символов? - PullRequest
0 голосов
/ 13 августа 2011

Я действительно не знаю JS, поэтому должен сделать это с помощью функции php strlen ().Но я бы хотел уменьшить нагрузку на сервер.вот моя форма регистрации:

<blockquote>
    <form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
        <h3><i>Username </i></h3> <input type="text" name="new_user_name" size="14" style="width:254px; height:24px; " /><br/>
        <h3><i>Password  </i></h3><input type="Password" name="new_user_password" SIZE="14" style="width:254px; height:24px;" /><br/>
        <h3><i>Email   </i></h3><input type="text" name="new_user_mail" size="14" style="width:254px; height:24px;" /><br/><br/>
        <input type="submit" name="submitok" id="mysubmit" value="Sign Up!" />
    </form>
</blockquote>

Ответы [ 5 ]

0 голосов
/ 13 августа 2011

Есть несколько способов, о чем свидетельствует количество ответов.Это еще один ответ, аналогичный ответу Джареда Нга, но с использованием onkeypress и проверкой, чтобы убедиться, что ввод не является управляющей клавишей, в противном случае, когда вы нажмете на вкладку «Limit» и Backspace не будет работать для вас.

    <html>
        <head>
            <script type="text/javascript">
                function limit_length(event, max_length) {
                    event = (event) ? event : window.event;
                    var keycode = (event.which) ? event.which : event.keyCode;
                    if (keycode > 48) {
                        if (document.myform.myinput.value.length >= max_length) return false;
                    }
                    return true;
                }
            </script>
    </head>

    <body>
        <form name="myform">
            <input type="text" name="myinput" onkeypress="return limit_length(event, 5)"/>
        </form>
    </body>

0 голосов
/ 13 августа 2011

Есть много способов сделать это.Подобно тому, что Stackoveflow делает в своем комментарии, подсчитывает количество символов на каждое нажатие клавиши и сообщает пользователю, сколько нужно других символов, вы можете сделать что-то вроде этого (я не запускал код) HtML:

<label id="name'>Name:<input type="text"/><span></span></label>

JavaScript(jQuery):

 $('#name input').bind('keydown', function(e){
     if($('#name input')[0].val().length < 5){
     $('#name span').text('You need ' + (5 - $('#name input')[0].val().length ) + 'more charecters');
     }
     else{ $('#name span').text('');}
    });
0 голосов
/ 13 августа 2011

При отправке:

document.getElementById('form_id_here').addEventListener('submit', function(e) {
    if (document.getElementById('input_id_here').length < minimum_length_here)
        e.preventDefault();
}, false);

При изменении:

document.getElementById('input_id_here').addEventListener('change', function(e) {
    if (e.target.length < minimum_length_here)
        // do stuff
    else
        // do other stuff
}, false);

Обратите внимание, что .length измеряет значения UTF-16, которые не совпадают с кодовыми точками Unicode, если выиметь символы вне BMP.

Также обратите внимание, что вы должны сохранить проверку на стороне сервера;если пользователь отключил JavaScript и у вас нет проверки на стороне сервера, то ваши ограничения могут быть обойдены.

0 голосов
/ 13 августа 2011

Вы можете проверить это:

http://docs.jquery.com/Plugins/validation#Validator

См. Различные методы проверки и многое другое, чем вы просили: http://docs.jquery.com/Plugins/validation#Validator

Надеюсь, что этопомогает - это просто и легко!

0 голосов
/ 13 августа 2011

У вас все еще должна быть проверка на стороне сервера.Очень плохая идея полагаться на проверку входных данных на стороне клиента.Что если у пользователя отключен JavaScript?Что если пользователь использует свою собственную форму?

Что касается вашего вопроса, вы можете сделать следующее:

<input type="text" id="signupbox" onchange="verifyLength(this)" />
<span id='warning'></span>

(Javascript code)
function verifyLength(e) {
  if (e.value.length > 5) { // Change 5 to whatever you want as your minimum length
    document.getElementById('warning').innerHTML = "Your input is too short!"
  } else {
    document.getElementById('warning').innerHTML = "";
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...