Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > скрипт не работает в Firefox


Автор: expLict 16.11.2009, 09:48
Всем привет!
Яваскрипт знаю плохо поэтому нужна помощь. Собственно сабж: есть примитивная функция упрощенная с помощью jQuery.
Код

function Map_load(city,desc){
    if($("div#reg_info")){
       $("div#reg_info").empty();
       $("div#reg_info").append("<h1>"+city+"</h1><br />"+desc);
    }
}

Она вызывается по клику на поле картинки
Код

<area onClick="Map_load(sel.options[1].text,sel.options[1].value);" shape="rect" coords="22,153,91,197" href="javascript://"></area>

Также есть select, в который с помощью smarty через цикл забивается массив элементов option, содержащих инфу по регионам:
Код

<select id="sel" name="sel" onChange="Loadinfo();">
    <option value="город не выбран" />---
      {foreach from=$regions item=region}
        <option value="{$region.RText}" />{$region.RName}
      {/foreach}
    </select>

Ну и соответственно есть div c id="reg_info" в который вышеприведенная функция и вбивает инфу взятую из атрибута value(от optiona)

Проблема в том что все это не работает в Firefox3.5, а в IE6/7/8, Opera, Google Chrome работает великолепно.

Firebug пишет sel is not defined, тоесть якобы sel не определена. Зачем ее описывать? Помогите пожалуйста, очень нужно чтоб в лисе тоже работало ;)

зы: прошу прощения если подобная тема поднималась.

Автор: EmilRegis 16.11.2009, 12:10
думаю эта запись
Код

<option value="{$region.RText}" />{$region.RName}

не верна...Вы закрываете тег option раньше, чем пишете что-то внутри него...
вот таак надо
Код

<option value="{$region.RText}" >{$region.RName}</option>

Автор: expLict 16.11.2009, 12:20
EmilRegis, 
Насколько я знаю тег <option> не требует закрывающего тега, тоесть запись <option>...</option> равносильна <option />...

Автор: bars80080 16.11.2009, 12:28
Цитата(expLict @  16.11.2009,  11:20 Найти цитируемый пост)
Насколько я знаю тег <option> не требует закрывающего тега, тоесть запись <option>...</option> равносильна <option />... 

ваше /> закрывает его. то что он не требует, подразумевает:

<option>oiqwrueqo
<option>lskdfalsd
<option>asljdfa;l

но требует, не требует - лучше писать как надо и закрывать всё

Автор: EmilRegis 16.11.2009, 12:28
действительно не требует, но я не уверен, что в записи
Код

<option value="{$region.RText}" />{$region.RName}

{$region.RName} будет пониматься как sel.options[1].text, потому что он находится вне пределов данного <option>...хотя может и будет

Автор: expLict 17.11.2009, 11:30
Всем спасибо, тему можно закрывать. Проблема была в этой строке
Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Фокс не желает ее присутствия в исходном коде. Пришлось закомментить...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)