Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

[Решено] Поиск по нажатию Enter


SlavkaWM

Recommended Posts

как сделать чтоб поиск работал по нажатию энтера а не обезательно было жать на картинку?

Так и есть по-умолчанию, проверьте, например, на демо сайте.

Если не так, то:

1) меняли код (поглядите на то, есть ли

<script type="text/javascript"><!--
$('#search input').keydown(function(e) {
	if (e.keyCode == 13) {
		moduleSearch();
	}
});

function moduleSearch() {
	url = 'index.php?route=product/search';
	
	var filter_keyword = $('#filter_keyword').attr('value')
	
	if (filter_keyword) {
		url += '&keyword=' + encodeURIComponent(filter_keyword);
	}
	
	var filter_category_id = $('#filter_category_id').attr('value');
	
	if (filter_category_id) {
		url += '&category_id=' + filter_category_id;
	}
	
	location = url;
}
//-->
2) отключены скрипты в браузере
Надіслати
Поділитися на інших сайтах


  • 4 months later...

Так и есть по-умолчанию, проверьте, например, на демо сайте.

Если не так, то:

1) меняли код (поглядите на то, есть ли

<script type="text/javascript"><!--
$('#search input').keydown(function(e) {
	if (e.keyCode == 13) {
		moduleSearch();
	}
});

function moduleSearch() {
	url = 'index.php?route=product/search';
	
	var filter_keyword = $('#filter_keyword').attr('value')
	
	if (filter_keyword) {
		url += '&keyword=' + encodeURIComponent(filter_keyword);
	}
	
	var filter_category_id = $('#filter_category_id').attr('value');
	
	if (filter_category_id) {
		url += '&category_id=' + filter_category_id;
	}
	
	location = url;
}
//-->
этот код в каком файле смотреть?
Надіслати
Поділитися на інших сайтах


этот код в каком файле смотреть?

Внизу Хедера.

Обратите внимание на вторую строчку скрипта, в ней написана id блока в котором находится поиск, думаю проблема в том, что у вас id блока не совпадает с id в скрипте.

Надіслати
Поділитися на інших сайтах


  • 3 months later...

Что то у меня не получается, вот кусок самого блока поиска:

<div class="block-search">
                       <div class="indent-search">
                        <fieldset class="form-search">
                          <?php if ($keyword) { ?>
                          <input type="text" value="<?php echo $keyword; ?>" id="filter_keyword" class="input-text" />
                          <?php } else { ?>
                          <input type="text" value="<?php echo $text_keyword; ?>" id="filter_keyword" onclick="this.value = '';" onkeydown="this.style.color = '000000'" style="color: #999;" class="input-text" />
                          <?php } ?>
                          <button class="button" type="submit" onclick="moduleSearch();"> </button>
                        </fieldset>
                       </div>
                        <p class="search-text"><?php echo $entry_search; ?></p>
                    </div>

А вот джава внизу:

<script type="text/javascript"><!--
$('block-search').keydown(function(e) {
	if (e.keyCode == 13) {
		moduleSearch();
	}
});

function moduleSearch() {
	url = 'index.php?route=product/search';
	
	var filter_keyword = $('#filter_keyword').attr('value')
	
	if (filter_keyword) {
		url += '&keyword=' + encodeURIComponent(filter_keyword);
	}
	
	var filter_category_id = $('#filter_category_id').attr('value');
	
	if (filter_category_id) {
		url += '&category_id=' + filter_category_id;
	}
	
	location = url;
}
//--></script>
<script type="text/javascript"><!--
$('.switcher').bind('click', function() {
	$(this).find('.option').slideToggle('fast');
});

так и не пойму почему не работает!

  • +1 2
Надіслати
Поділитися на інших сайтах


победил. Надо название блока в джаве написать уже filter_keybord:

//--></script>

<script type="text/javascript"><!--

$('#filter_keyword').keydown(function(e) {

if (e.keyCode == 13) {

moduleSearch();

}

});

function moduleSearch() {

url = 'index.php?route=product/search';

var filter_keyword = $('#filter_keyword').attr('value')

if (filter_keyword) {

url += '&keyword=' + encodeURIComponent(filter_keyword);

}

var filter_category_id = $('#filter_category_id').attr('value');

if (filter_category_id) {

url += '&category_id=' + filter_category_id;

}

location = url;

}

//--></script>

<script type="text/javascript"><!--

$('.switcher').bind('click', function() {

$(this).find('.option').slideToggle('fast');

});

//--></script>

  • +1 1
Надіслати
Поділитися на інших сайтах


победил. Надо название блока в джаве написать уже filter_keybord:

//--></script>

<script type="text/javascript"><!--

$('#filter_keyword').keydown(function(e) {

if (e.keyCode == 13) {

moduleSearch();

}

});

function moduleSearch() {

url = 'index.php?route=product/search';

var filter_keyword = $('#filter_keyword').attr('value')

if (filter_keyword) {

url += '&keyword=' + encodeURIComponent(filter_keyword);

}

var filter_category_id = $('#filter_category_id').attr('value');

if (filter_category_id) {

url += '&category_id=' + filter_category_id;

}

location = url;

}

//--></script>

<script type="text/javascript"><!--

$('.switcher').bind('click', function() {

$(this).find('.option').slideToggle('fast');

});

//--></script>

Превосходно! Огромное спасибо! А мне таки и не хватило мозга, как я этот блок только не колбасил.. Ещё раз спасибо!

Надіслати
Поділитися на інших сайтах


  • 1 year later...

тоже столкнулся, но ситуация иная

в стандартном шаблоне перенес блок поиска в другое место, из-за этого клавиша ентер перестала работать на поиске (который в шапке).

в файле common.js поправил в строке

$('#header input[name=\'filter_name\']').bind('keydown', function(e) {

на

$('#search input[name=\'filter_name\']').bind('keydown', function(e) {

все заработало

1.5.4.1

з.ы. в зависимости от того, куда кто этот блок перенес - нужно соответствующую корректировку и вносить, вроде как. мой случай не панацея, а скорее как пример.

  • +1 2
Надіслати
Поділитися на інших сайтах


  • 2 months later...

тоже столкнулся, но ситуация иная

в стандартном шаблоне перенес блок поиска в другое место, из-за этого клавиша ентер перестала работать на поиске (который в шапке).

в файле common.js поправил в строке

$('#header input[name=\'filter_name\']').bind('keydown', function(e) {

на

$('#search input[name=\'filter_name\']').bind('keydown', function(e) {

все заработало

1.5.4.1

з.ы. в зависимости от того, куда кто этот блок перенес - нужно соответствующую корректировку и вносить, вроде как. мой случай не панацея, а скорее как пример.

 

Спасибо, мне помог Ваш способ!

Надіслати
Поділитися на інших сайтах


  • 1 month later...

ocStore 1.5.5.1.1

В стороннем шаблоне тоже по интеру не работал.

В catalog/view/javascript/common.js заменил строку

$('#header input[name=\'search\']').bind('keydown', function(e) {

на

$('input[name=\'search\']').bind('keydown', function(e) {

  • +1 1
Надіслати
Поділитися на інших сайтах


  • 1 month later...

такая же проблема, только ничего из вышесказанного не помогло. шаблон стандартный. 1,5,5,1

ввожу запрос, жму энтер - ничего не происходит

Но плюс к тому если нажать мышкой на иконку поиска в шапке, перекидывает на станицу поиска, как будто был пустой запрос.

Надіслати
Поділитися на інших сайтах


  • 2 months later...

доброе время суток подскажите пж такая же проблема ввожу запрос, жму enter перекидывает на станицу поиска где нужно ввести обратно запрос

Надіслати
Поділитися на інших сайтах


  • 2 months later...
  • 1 month later...

Столкнулся с этой же проблемой. Нашел решение, помог код:

"<script type="text/javascript"><!--$('#search input').keydown(function(e) {
   if (e.keyCode == 13) {
      moduleSearch();
   }
});


function moduleSearch() {   
   pathArray = location.pathname.split( '/' );
   
   url = '<?php echo HTTP_SERVER; ?>';
      
   url += 'index.php?route=product/search';
      
   var filter_keyword = $('#filter_keyword').attr('value')
   
   if (filter_keyword) {
      url += '&keyword=' + encodeURIComponent(filter_keyword);
   }
   
   var filter_category_id = $('#filter_category_id').attr('value');
   
   if (filter_category_id) {
      url += '&category_id=' + filter_category_id;
   }
   
   location = url;
}
//--></script>"
Но проблема в том, что просто срабатывает редирект по нажатию на "ентер", но никакого поиска не случается, просто редиректит  на /index.php?route=product/search и всё. Помогите пожалуйста вылечить, горит :(
 
Чуть выше, код выглядит так:

<div id="menu-search">
   <div id="search">
    <?php if ($filter_name) { ?>
    <input type="text" name="filter_name" value="<?php echo $filter_name; ?>" />
    <?php } else { ?>
    <input type="text" name="filter_name" value="<?php echo $text_search; ?>" onclick="this.value = '';" onkeydown="this.style.color = '#000000';" />
    <?php } ?>
    <div class="button-search"></div>
  </div> 
Надіслати
Поділитися на інших сайтах


Спасибо! что-то произошло неведомое, в общем - теперь снова нажатие на enter не работает.
Поставил код вида: 

<script type="text/javascript"><!--
$('#search input').keydown(function(e) {
if (e.keyCode == 13) {
moduleSearch();
}
});
function moduleSearch() {
url = 'index.php?route=product/search';
var filter_keyword = $('#filter_keyword').attr('value')
if (filter_keyword) {
url += '&keyword=' + encodeURIComponent(filter_keyword) + '&description=true';
}
location = url;
}
//--></script>

Естественно с заменой строк 

 

 

var filter_keyword = $('#filter_keyword').attr('value')

var filter_keyword = $('input[name="filter_name"').attr('value')

 

Но эффекта не дало  :mellow: , всё та же пустая страница с 0 результатами 

Надіслати
Поділитися на інших сайтах


 

Попробуйте.

var filter_keyword = $('input[name="filter_name"').val();

Спасибо большое, но опять пустая строка поиска. Но уже ближе к правде, редирект ведёт на страницу типа:

/search&keyword=вводимоеслово&description=true

А надо:

/search&filter_name=вводимоеслово
Надіслати
Поділитися на інших сайтах


ну ё-моё

 

 

url += '&keyword=' + encodeURIComponent(filter_keyword) + '&description=true';

url += '&filter_name=' + encodeURIComponent(filter_keyword) + '&description=true';
Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.