Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 04.03.2014, 01:02
Кандидат Javascript-наук
Отправить личное сообщение для sashgera Посмотреть профиль Найти все сообщения от sashgera
 
Регистрация: 20.09.2011
Сообщений: 140

рони, и еще, если можно... я сделал так, чтобы форма проходила валидацию если будут пробелы до и после ввода цифр:
if  (/\S+\D\S+/.test(str)) {
а как сделать валидацию пробелов в середине числа? например:
(пробел25пробел7) что равно 257

спасибо
Ответить с цитированием
  #12 (permalink)  
Старый 04.03.2014, 01:23
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

sashgera,
if  (!/^[\d\s]+$/.test(str))
Ответить с цитированием
  #13 (permalink)  
Старый 04.03.2014, 02:03
Кандидат Javascript-наук
Отправить личное сообщение для sashgera Посмотреть профиль Найти все сообщения от sashgera
 
Регистрация: 20.09.2011
Сообщений: 140

Сообщение от рони Посмотреть сообщение
sashgera,
if  (!/^[\d\s]+$/.test(str))
сделал как вы написали, но что-то не срабатывает:
если в поле набираю: пробел25пробел7пробел -то форма поиска не находит артикул 257

а если набираю пробел7пробел7 то находит артикул 7, а не 77 как нужно
....ну чтобы игнорировались пробелы
Ответить с цитированием
  #14 (permalink)  
Старый 04.03.2014, 02:22
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

sashgera,
если вам ненужны пробелы то причём здесь условие ?
var str = $('#keyword').val()
str = str.replace(/\D/g, '');
$('#keyword').val(str);
Ответить с цитированием
  #15 (permalink)  
Старый 04.03.2014, 02:25
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

sashgera,
function submitSearchForm() {
	    var str = $('#keyword').val();
        str = str.replace(/\D/g, '');
        $('#keyword').val(str);
		if( !str || str == $('#keyword').data("placeholder") ) {
		$('.er').animate({width:'show'}, 500); // показать div с ошибкой
			return false;
		}
 	   return true
	}

Последний раз редактировалось рони, 04.03.2014 в 02:30.
Ответить с цитированием
  #16 (permalink)  
Старый 04.03.2014, 03:27
Кандидат Javascript-наук
Отправить личное сообщение для sashgera Посмотреть профиль Найти все сообщения от sashgera
 
Регистрация: 20.09.2011
Сообщений: 140

рони, я добавил вывод второй ошибки – только цифры, поэтому вы меня и не поняли
сделал так (код ниже) все работает, как я хотел:
Нажатие кнопки/enter если поле не заполнено – ошибка: Укажите артикул!
Если набрать не цифры – ошибка: Указывайте в артикуле только цифры!
Ну и пробелы (до, после, в середине цифр ) удаляются..
Большое спасибо за помощь и терпение
<script type="text/javascript">
jQuery(function($) {
	$("#keyword").focus(function() {
  if ( $(this).val() == $(this).attr("data-placeholder") ) {
    $(this).val("");
    $(this).css("color","#040404");
  }
}).blur(function() {
  if ( !$(this).val() ) {
    $(this).val( $(this).attr("data-placeholder") );
    $(this).css("color","#858585");
  }
}).focus().blur();
    $('#searchFormButton').click(function(){$('form').submit()})
    $('form').submit(submitSearchForm)
	function submitSearchForm() {
		if( !$.trim( $('#keyword').val() ) || $('#keyword').val() == $('#keyword').attr("data-placeholder") ) {
		$('#error1').animate({width:'show'}, 500); // показать div с ошибкой: Укажите артикул!
			return false;
		}

      var str = $('#keyword').val();
        str = str.replace(/\D/g, '');
        $('#keyword').val(str);
		if( !str || str == $('#keyword').data("placeholder") ) {
		$('.er').animate({width:'show'}, 500); // показать div с ошибкой: Указывайте в артикуле только цифры! 
			return false;
		}
 	   return true
	}
$("#keyword").click(function(){ // спрятать div с ошибкой при клике в поле input
   $(".er").animate({width:'hide'}, 300);
   });
});
</script>
<!--BEGIN Search Box --> 
<form action="<?php $sess->purl( $mm_action_url."index.php?page=shop.browse" )?>" method="post" id="searchForm" class="search">
  <div style="float:left;">
        <input name="keyword" type="search"  class="input" id="keyword" 
        data-placeholder="<?php echo $VM_LANG->_('PHPSHOP_SEARCH_TITLE_SKU') ?>" 
        value="<?php echo $VM_LANG->_('PHPSHOP_SEARCH_TITLE_SKU') ?>"/>
		<input class="submit" type="button"  name="" value="" id="searchFormButton" />
  </div>
</form>
<!-- End Search Box -->
<div class="er" id="error1"><?php echo $VM_LANG->_('PHPSHOP_NO_SEARCH_ERROR_1_SKU') ?></div> //  div с ошибкой: Укажите артикул!
<div class="er" id="error2"><?php echo $VM_LANG->_('PHPSHOP_NO_SEARCH_ERROR_2_SKU') ?></div> //  div с ошибкой: Указывайте в артикуле только цифры!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как запретить ввод текста в input snizhok Элементы интерфейса 41 07.11.2016 13:11
Ограничение на ввод в инпут (цифры, точка, минус) Fenec Events/DOM/Window 4 24.07.2015 07:40
2 формы поиска 1 общая подсказка irkprin Общие вопросы Javascript 15 22.07.2013 14:31