|
Иногда возникает необходимость отправки данных с предварительной обработкой. Приведу небольшой пример. Пусть нам необходимо сделать возможность проверки количества проиндексированных страниц сайта на google.
Строка такого запроса выглядит следующим образом:
http://www.google.com.ua/search?q=site:webobzor.net
Разумеется, если пользователь захочет использовать для создания запросов форму, ему необходимо написать приблизительно следующее:
<form action="http://www.google.com/search">
<input type="text" name="q">
</form>
При этом, пользователю придется вводить вместе с адресом сайта и приставку site:
что достаточно не удобно, к тому же где-то под формой необходимо будет сделать расшифровку ввода данных.
Что бы избежать этого, можно отправлять запрос с предварительной обработкой:
<script language="JavaScript">
function Enter(evt) {
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode == 13) {
document.getElementById("q").value = "site:" + document.getElementById("query").value;
document.getElementById("forma").submit();
}
else
return true
}
</script>
<input type="text" name="query" id="query" onKeyDown="Enter(event)">
<form action="http://www.google.com/search" id="forma">
<input type="hidden" name="q" id="q">
</form>
В данном случае отправка формы будет осуществляться при нажатии на Enter в эдитбоксе.
При этом, мы используем данный объект вне формы. Сама форма у нас остается невидимой. Таким образом, данным форме (объекту hidden) присваивается уже обработанный запрос site:имя_сайта. Разумеется, если вы хотите отправлять данные формы не только по нажатию на Enter, вам достаточно всего лишь присвоить соответствующий код клавиши в функции Enter (charCode).
Совершенная во всём школа танцев не разочаруетесь ; На пианино, среди прочего, лежат суши и роллы, пока мама не видит. |