Как я могу использовать select box как навигационное меню?
При использовании простого JavaScript, вы можете использовать select box для передвижения по сайту. Рассмотрите этот пример:
Code
<FORM name="navForm">
<select name="menu"
onChange = "self.location =
document.navForm.menu[document.navForm.menu.selectedIndex].value;">
<option value="home.html">Home</option>
<option value="links.html">Links</option>
<option value="contact.html">Contact Info</option>
</select>
Просто сохраните URL различных страниц в option value. Обработчик события OnChange вызовет перенаправление расположения, когда значение в поле изменено.
Вы могли бы использовать этот код, чтобы изменить расположение другого фрейма изменением 'self.location =' на 'top.framename.location ='
Как я могу использовать картинку для кнопки submit?
Часто возникает вопрос: "Как инициировать форму по картинке, а не по кнопке submit?" Решение столь же просто, как этот пример:
Code
<form>
<input type="image" name="cancel" src="cancel.gif" alt="Cancel!" border=0>
<input type="image" name="continue" src="continue.gif"
alt="Click to Continue" border=0>
</form>
Когда нажимается любая кнопка, форма инициируется и координаты x/y щелчка мыши на кнопке загружаются в объект запроса. Например, если пользователь выбрал Cancel!, объект запроса будет содержать переменные cancel.x и cancel.y. Точно так же щелчок на Continue привел бы к переменным continue.x и continue.y.
Здесь важно отметить, что элементы .x и .y - не переменные объектов continue или cancel, а фактически часть имени "continue.x". Следовательно, нельзя использовать типичный метод для определения существования одного из дочерних объектов запроса:
Code
if (request.normalItem)
act();
if (request.continue.x) // Noooo! Produces horrible error messages!
doContinuingThings();
Тем не менее рассмотрите это:
Code
if (request['normalItem'])
act();
if (<B>request['continue.x']</B>) // Much better <img src="http://s108.ucoz.net/sm/2/smile.gif" border="0" align="absmiddle" alt="smile" />
doContinuingThings();
Благодаря названным массивам JavaScript, можно проверить какая картинка инициировала форму.
Для некоторых приложений, полезно знать координаты курсора на нажатой картинке. Эта информация, конечно, содержится в парах image_element.x и image_element.y. Следующий серверный JavaScript мог бы использоваться для этого:
Code
x=0;
y=0;
if ((request['my_submit_image.x']) (request['my_submit_image.y'])) {
x = parseInt(request['my_submit_image.x']);
y = parseInt(request['my_submit_image.y']);
}
Передача данных между формами на различных страницах
В качестве простого примера, предположите, что ваша "домашняя" страница запрашивает имя пользователя, затем использует это имя, чтобы обратиться к пользователю на следующих страницах. Вы можете взять имя, используя форму, затем использовать JavaScript для передачи имени пользователя в следующую страницу, используя URL. Последующая страница могла бы затем анализировать имя пользователя из URL, используя информацию в document.search.
home.html
Code
<html> <head> <script language="JavaScript">
function nextPage() {
self.location = "next.html?name=" +
escape(document.theForm.userName.value);
// Use escape() any time there might be spaces or
} // non-alpa characters
</script>
</head>
<body>
<form onSubmit = "nextPage();return false;">
Enter your name: <input type=text name=userName>
<input type=submit>
</form>
</body>
</html>
next.html
Code
userName = document.search;
userName = userName.substring(userName.indexOf("=")+1);
document.write("Greetings, " + userName + "<P>");
Почему document.formName.selectObject.value не отражает значение выбранного пункта в списке?
Потому что объект работает не таким образом. Правильный и полный синтаксис для доступа к VALUE только что выбранным полем в списке - это:
Code
Document.form.selectObject[document.form.selectObject.selectedIndex].value
Как мне получить значение выбранной в данный момент radio button в radio group или группе checkboxes?
Существует свойство, созданное в объекте form для каждой radio buttons или checkboxes с тем же самым именем. Например, следующий HTML код:
Code
<form name='theForm'>
<input type=radio name="gender" value="Male">Male
<input type=radio name="gender" value="Female">Female
<input type=radio name="gender" value="Evasive">Not Specified
</form>
приводит к созданию 3-х элементов массива, вызываемых с помощью document.theForm.gender. Чтобы определить значение выбранной кнопки (или checkbox'а), вам нужно проверить свойство checked каждого из элементов. Например:
Code
function checkIt() {
theGroup = document.theForm.gender;
for (i=0; i< theGroup.length; i++) {
if (theGroup[i].checked) {
alert("The value is " + theGroup[i].value);
break;
}
}
}
Как мне получить форму, чтобы инициировать процесс запуска клавишей Enter?
Форма отправляется, если нажата клавиша enter, в то время как единственный входной текстовый элемент формы имеет фокус. Вы можете вызывать подобное поведение в форме, имеющей более одного элемента, разбивая форму на ряд отдельных форм, так, чтобы каждая форма имела только один текстовый элемент. Используйте обработчик события onSubmit (или action="javascript:myFunction();") для накопления данных из других форм в вашей странице и инициируйте их все сразу.
Как я могу отключить поле текстового ввода?
Используйте обработчик onfocus для вызова функции blur():
Code
<INPUT TYPE="text" NAME="aTextField" ONFOCUS="this.blur()">
Если вы хотите динамически отключать/включать поле, используйте функцию skip (e)
Code
{ this.blur(); }
<A HREF="javascript:document.formName.aTextField.onfocus = skip; void
0">disable text field</A>
<A HREF="javascript:document.formName.aTextField.onfocus = null; void
0">enable text field</A>
Как сделать загрузку страницы при выборе флажка?
Как сделать загрузку страницы при выборе флажка?
Code
<form method=get OnChange='this.submit();'>
<input type=checkbox name="fnew">Только новые
</form>