Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Запрет пустого поля и поля с пробелами (https://javascript.ru/forum/misc/57644-zapret-pustogo-polya-i-polya-s-probelami.html)

myautosaler 12.08.2015 21:35

Запрет пустого поля и поля с пробелами
 
Здравствуйте.
Поле поиска не активируется когда оно пустое- это моя цель, и, в принципе, скрипт проверки работает, но если ввести пробелы, то оно начинает по ним искать, а нужно чтобы не искало и при пустом поле, и при поле с пробелами. Как это сделать? Сам скрипт громоздкий, если есть в нем ненужное, то что?
<form action="#" method="post" class="poiskno" onsubmit="this.subm.disabled=true;">
<input type="text" name="user" maxlength="25" class="rfield" />
<input type="submit" class="btn_submit disabled" style="display:none;" value="Отправить данные" />
</form>

(function( $ ){

$(function() {

  $('.poiskno').each(function(){
	var form = $(this),
        btn = form.find('.btn_submit');
	form.find('.rfield').addClass('empty_field');

    // Функция проверки полей формы
    function checkInput(){
      form.find('.rfield').each(function(){
        if($(this).val() !=''){
		$(this).removeClass('empty_field');
        } else {
		$(this).addClass('empty_field');
        }
      });
    }
    // Проверка в режиме реального времени
    setInterval(function(){
      // Запускаем функцию проверки полей на заполненность
	  checkInput();
      // Считаем к-во незаполненных полей
      var sizeEmpty = form.find('.empty_field').size();
      // Вешаем условие-тригер на кнопку отправки формы
      if(sizeEmpty > 0){
        if(btn.hasClass('disabled')){
          return false
        } else {
          btn.addClass('disabled')
        }
      } else {
        btn.removeClass('disabled')
      }
    },500);
    btn.click(function(){
      if($(this).hasClass('disabled')){
        return false}
	else {
        form.submit();
      }
    });
  });
});
})( jQuery );

рони 12.08.2015 21:39

Цитата:

Сообщение от myautosaler
if($(this).val() !='')

if(/[^\s]/.test($(this).val()))

myautosaler 12.08.2015 21:47

Спасибо! Работает. Можно ли сделать чтобы только английские буквы искало, а то если написать ":", то ищет, а это весь поиск сбивает?

рони 12.08.2015 22:00

Цитата:

Сообщение от myautosaler
Можно ли сделать чтобы только английские буквы искало

можно но лучше бы вы это сделали сами http://javascript.ru/RegExp
это как бы азы всё что нужно в таблице там

myautosaler 12.08.2015 22:33

Вот еще проблема: если кликнуть на поле и быстро нажать на enter, то проверка не успевает сработать и поиск идет по пустому. Как это исправить?
Все уже исправил. рони- еще раз спасибо.

рони 13.08.2015 00:35

myautosaler,
может вам придумать алгоритм без setInterval?

myautosaler 13.08.2015 01:15

Думаю пока так оставить. Сейчас скрипт работает, все нужные функции исполняет.


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