Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Проблема с объектом Location (https://javascript.ru/forum/dom-window/5525-problema-s-obektom-location.html)

KingKong 20.10.2009 22:51

Проблема с объектом Location
 
Здравствуйте, все!

Есть задача: нужно организовать поле ввода текста и список выбора.
Так, чтобы при изменении текста в поле и при изменении позиции в списке документ обновлялся (это необходимо для передачи изменений в скрипт). Проблема в том, что если при изменении текста сразу нажать на список выбора Эксполрер вылетает с неодпустимой ошибкой или без таковой. А если нажать на любое пустое место, то он обновляет документ как надо. Еще одно условие - это должно работать в фрейме. Если убрать фрейм - все работает прекрасно.
Пробовал множество сочетаний - this, location, href, document, window...
Привожу кусок кода:

<script language="JavaScript">
function alerto()
   {
     this.location="right.htm";
   }

</script>

</head><body>Справочник</p>

<INPUT TYPE="text"  name="directory_value"   VALUE="Change" onChange="alerto();" >Поле

<p>
<select  name='new_column_type'  onChange="alerto();"  class='six' >

<option value='0-1'>Empty</option>

<option value='0-2'>TEXT</option>

<option value='0-3' selected>INDEX</option>

<option value='0-4'>LIST</option>
</select></body></html>


Заранее спасибо.

x-yuri 21.10.2009 05:47

приведи полный (с фреймом и начальными тэгами) нерабочий пример и укажи версию ie

KingKong 21.10.2009 18:43

Полные тексты.
 
left.htm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<script language="JavaScript" src="/frames.js"></script>
<title>Работа над справочниками</title>
<meta http-equiv="refresh" content="3600; url=/cgi-bin/logout.cgi; target=_top" >
<link href="/print.css" rel="stylesheet" type="text/css" media="print">
<link href="/screen.css" rel="stylesheet" type="text/css" media="screen">
</head><body>Работа над справочниками</p>

<a href="/right.htm" target='DATA'>Нажми!</a>

</body></html>

right.htm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<script language="JavaScript" src="/frames.js"></script>
<title>Работа над справочниками</title>
<meta http-equiv="refresh" content="3600; url=/cgi-bin/logout.cgi; target=_top" >
<link href="/print.css" rel="stylesheet" type="text/css" media="print">
<link href="/screen.css" rel="stylesheet" type="text/css" media="screen">
</head><body>Работа над справочниками</p>

<INPUT TYPE="text"  name="directory_value"   VALUE="Change" onChange="javascript:document.location.href='right.htm?directory_value='+this.value;" > Название нового справочника

<p>
<select  name='new_column_type'  onChange="javascript:document.location.href='right.htm?new_column_type='+this.value;"  class='six' >

<option value='0-1'  >Empty</option>

<option value='0-2'  >TEXT</option>

<option value='0-3' selected>INDEX</option>

<option value='0-4'  >LIST</option>
</select></body></html>

frame.htm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN">
<HTML><HEAD><TITLE>Пользователь портала</TITLE>
<META http-equiv=Content-Type content="text/html; charset=windows-1251">
</HEAD>
<FRAMESET id=fs1 cols="170, *">
<FRAME name=NAV src="/left.htm" frameBorder=0>
<FRAME name=DATA  frameBorder=0>
</FRAMESET></HTML>

KingKing 21.10.2009 18:49

Версия Интернет Експлорера.
 
IE6.0.2900.2180

x-yuri 21.10.2009 22:30

Цитата:

Сообщение от KingKong
Проблема в том, что если при изменении текста сразу нажать на список выбора Эксполрер вылетает с неодпустимой ошибкой или без таковой.

а теперь подробнее, потому что не вылетает

KingKong 22.10.2009 12:34

Продробное описание проблемы.
 
В правом фрейме появляется поле текстового ввода и список выбора.
Необходимо, чтоб при изменении текста и при изменении позиции выбранной в списке данные отсылались на сервер.
Если изменить значение в поле текстового ввода, а затем сразу мышью кликнуть на списке, эксплорер или закрывается с недопустимой ошибкой, или без ошибки, или не закрывается, а из фрейма пропадает содержимое. Если изменить значение текста, а потом кликнуть мышью в пустое место на экране(фрейм обновится), дальше можно спокойно работать.

Проблема только в 6-м Эксплорере, в 7-м и 8-м работает. Но на нескольких машинах с 6-м, не работает ни на одном.

x-yuri 22.10.2009 15:47

во-первых, убери javascript: из обработчиков
во-вторых, зачем перезагружать страницу по onchange?

KingKong 24.10.2009 00:03

Убрать javascript не помогает
 
Убрать javascript не помогает - я писал и вызывал функцию, тот же результат.
А как еще? Мне нужно чтобы посылались любые изменения из каждого поля, списка, итд.

x-yuri 24.10.2009 02:34

Цитата:

Сообщение от KingKong
Убрать javascript не помогает

не должно

Цитата:

Сообщение от KingKong
Мне нужно чтобы посылались любые изменения из каждого поля, списка, итд.

используй ajax, еще на этом сайте статьи можешь поискать


Часовой пояс GMT +3, время: 04:19.