Перейти к содержанию
SlavkaWM

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

Рекомендуемые сообщения

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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) отключены скрипты в браузере

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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 в скрипте.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

<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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Доброго времени суток!

Присоединяюсь к Orion.. Та же проблема, шаблон cofran.

Подскажите пожалуйста!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

О! Коллега по проблеме, у меня тоже шаблон cofran как исходный был взят.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

победил. Надо название блока в джаве написать уже 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>

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

в файле 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

на

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

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

1.5.4.1

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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,5,5,1

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

файл common поменял на стандартный, header.tpl тоже - не помогло.

Где еще может быть проблема?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Весь рабочий день убил, но нашел гада - поиск в шапке умирает если установить https://opencartforum.com/topic/21780-vsplyvaiuschee-okno-posle-dobavleniia-tovara-v-kor/

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Помогите плиз, скажите где находятся файлы в которых нужно смотреть проблему эту?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

"<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> 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо! что-то произошло неведомое, в общем - теперь снова нажатие на 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();

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

Попробуйте.

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 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.