Я работаю над проектом, в котором использую заголовок организации на своем собственном веб-сайте. Веб-сайт организации построен на ASP.NET
, о котором я ничего не знаю. Часть, которая сбила меня с толку, — заставить панель поиска в заголовке работать. Я пробовал следующее (с некоторыми анонимными вещами)
$(document).ready(function()
{
/* Select the <a> element holding the search icon (usually a magnifying glass)
and set it as a variable: */
var searchIcon = $('#id1');
/* Set a variable equal to the prefix of the URL request: */
var urlRequestPrefix = "http://www.orgname.com/search/Results.aspx?k=";
/* Select the search <input> element and set it as a variable: */
var searchInput = $('#id2');
/* Make the <a> tag holding the search icon search for the input when clicked.
Originally it has href="javascript:someFunction()"
*/
searchIcon.attr('href', function()
{
window.location = urlRequestPrefix + searchInput.val();
});
});
Но, к сожалению, по какой-то причине выполняется window.location = urlRequestPrefix + searchInput.val();
при загрузке страницы. Может кто-нибудь объяснить, почему и, возможно, помочь мне исправить это?
2 ответа
Из-за следующего кода он выполняет функцию. В то время как вы могли бы установить href
= какое-то строковое значение.
Что он сделал: он только что оценил значение параметра href
, в вашем случае это JS function
, а ожидалось, что оно будет string
. Поэтому при оценке он перенаправлялся на другую страницу, так как там есть window.location = ...
.
searchIcon.attr('href', function()
{
window.location = urlRequestPrefix + searchInput.val();
});
Это должно выглядеть следующим образом.
searchIcon.attr('href', urlRequestPrefix + searchInput.val());
Предположение: идентификатор <a>
- "id1".
По сути, это устанавливает значение якоря «href» в нужное место. И при нажатии на это (конечным пользователем) это сделает window.location = urlRequestPrefix + searchInput.val();
Этот код запускается при загрузке документа, чтобы установить его в атрибут searchIcon, выполните searchIcon.attr('href', '#').click(function () { window.location = urlRequestPrefix + searchInput.val(); });
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Имейте в виду, что JavaScript — это НЕ то же самое, что Java! Включите все ярлыки, относящиеся к вашему вопросу; например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [svelte] и т. д.
#
значение атрибута href. Это позволяет вам иметь ссылку, которая никуда не указывает, что позволяет вам обрабатывать щелчок так, как вы хотите.