Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Javascript проверка формы (https://javascript.ru/forum/dom-window/59264-javascript-proverka-formy.html)

xammett 03.11.2015 14:25

Javascript проверка формы
 
Всем привет.
Подскажите, такой вопрос:есть форма и проверка на js
форма:
<form action='' target='_blank' >
  <input name='name_css' oninput="ValidateCss(this)">
  <input value='Посмотреть детализацию' type='submit'>
</form></center><br/>

function ValidateCss(input) {
     exp = /\bCSS\d{2}$/;


     // if (!exp.test(input.value)){
     if (input.value == 'CSS00' || !exp.test(input.value)){
         input.setCustomValidity("Введите данные в правильном формате. Например CSS12");
     }
     else {
         console.log('Все правильно');
         input.setCustomValidity("");
     }
   }

Собственно вопрос. если убрать \b, то слева символы не проверяются, те можно ввести aCSS12 и валидация будет пройдена.
а вот эта запись в консоле работает, но если этот код использовать то нет.
Подскажите, пожалуйста как слева от слова корректно символы проверить?

В идеале нужно, чтобы CSS12 проходило валидацию

рони 03.11.2015 14:46

xammett,
:-?

xammett 03.11.2015 15:17

Если в консоле проверять, все работает, но если использовать такую функцию, то якобы не валид показывает.
То есть это правило /\bCSS\d{2}$/, говорит что запись в виде CSS12 не валидна. Что не так? Кто знает?

рони 03.11.2015 15:39

xammett,
где функция, а лучше макет и


Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

xammett 03.11.2015 15:45

пожалуйста, готово

xammett 03.11.2015 15:56

Если упростить вопрос, как быть уверенным, что слово начинается с CSS и имеет 2 цифры? Мой подходи в валидации почему-то не работает.

рони 03.11.2015 15:59

xammett,
setCustomValidity нету у вас, остальное что не так?
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>

</head>

<body>
<form action='' target='_blank' >
  <input name='name_css' oninput="ValidateCss(this)">
  <input value='Посмотреть детализацию' type='submit'>
</form></center><br/>
<script>
  function ValidateCss(input) {
     exp = /\bCSS\d{2}$/;
   if (input.value == 'CSS00' || !exp.test(input.value)){
         alert("Введите данные в правильном формате. Например CSS12");
     }
     else {
         alert('Все правильно');

     }
   }
  </script>


</body>

</html>

xammett 03.11.2015 16:25

setCustomValidity я переименовал в setCustomValidity
Не так то, что это правило почему-то не срабатывает
если ввести запись в виде CSS12 будет выскакивать ошибка, что якобы не тот формат, но в консоле говорит true.
Что-то не так с правилом регэкспа?

рони 03.11.2015 16:39

Цитата:

Сообщение от xammett
если ввести запись в виде CSS12 будет выскакивать ошибка

такого не наблюдаю


Часовой пояс GMT +3, время: 07:26.