Как запретить пользователю вводить пробел в начале в текстовое поле? - PullRequest
1 голос
/ 11 мая 2010

У меня есть форма с тремя полями Имя, Адрес электронной почты и Пароль.Теперь я хочу запретить пользователю вводить пробел "" в начале значения, скажем, пользователь не может вводить только пробелы в полях.

Я попытался исправить это так:

но исправить не удалось.

может кто-нибудь мне помочь .. Спасибо.

Ответы [ 3 ]

1 голос
/ 11 мая 2010

Поскольку вы пометили свой вопрос jquery-validate. Вот ответ, как это сделать с помощью jquery:

Для получения дополнительной информации смотрите: http://docs.jquery.com/Plugins/Validation

<script type="text/javascript">
  $.validator.addMethod("NoWhiteSpaceAtBeginn", function(value, element) {
    return this.optional(element) || /^[^\t].*/.test(value);
  }, "Must not begin with a whitespace");
  $(document).ready(function(){
    $("#form1").validate();
  });
</script>

/^[^\t].*/ проверяет, начинается ли строка каким-либо символом, кроме пробела, если вы хотите исключить все пробелы, используйте /^[^\s].*/. А теперь добавьте required и NoWhiteSpaceAtBeginn в качестве имен классов к полям, которые вы хотите проверить.

<form name="form1" id="form1" action="index.php" method="post">
  <table align="right" border="0">
    <tr>
      <td>First Name:</td>
      <td><input id="fName" name="fName" type="text" class="input-login required NoWhiteSpaceAtBeginn"/></td>
    </tr>
    <tr><td>Email Address:</td></tr>
    <tr><td><input id="email" name="email" type="text" class="input-login required NoWhiteSpaceAtBeginn email"/></td></tr>
    <tr><td>Password:</td></tr>
    <tr><td><input id="password" name="password" type="password" class="input-login"/>/td></tr>
    <tr><td align="center"><a href="#">Forgot password</a></td></tr>
    <tr>
      <td align="center"><input name="login" id="login" type="submit" value="Login" >&nbsp;<input name="signup" id="signup" type="submit" value="SignUp" ></td>
    </tr>
  </table>
</form>

Хороший учебник можно найти здесь: http://corpocrat.com/2009/07/15/quick-easy-form-validation-tutorial-with-jquery/

0 голосов
/ 11 мая 2010

Что обычно делается, это «обрезать» строку. К сожалению, JS не имеет встроенной обрезки, но ее легко написать (поиск альтернатив в Интернете):

var name = document.getElementById('fName').value.replace(/^\s+|\s+$/g, "");
if (name === "") { 
   ...

Помните, что вам нужно обрезать и заново проверять все на стороне сервера! Никогда не доверяйте чистой проверке на стороне клиента.

0 голосов
/ 11 мая 2010

Попробуйте сопоставить пробелы (\ s):

(document.getElementById ('fName'). Value.match (/ ^ [\ s] /))

В вашем коде:

if ((document.getElementById ('fName'). Value) == '') || (document.getElementById ('fName'). value.match (/ ^ [\ s] /)) { оповещение («Пожалуйста, введите ваше имя»); возврат (ложь); } else if ((document.getElementById ('lName'). value) == '') { оповещение («Пожалуйста, введите свою фамилию»); возврат (ложь); }

Таким образом, значения вашего поля не могут начинаться с пробела.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...