Глюк с <label> в Opera 7

Ямерт

The Old One
Глюк с <label> в Opera 7

Как известно, в Opera 6 <label> вообще не работал.
Однако это было лучше, чем то, что есть теперь.

Теперь события onClick за элементах формы, на которые сслыается <label>, здесь просто не срабатывают, когда вы кликаете на label'е, однако сами элементы получают фокус / помечаются (в зависимости от своего типа). Сие есть очень печально.

Вот контрольный код (кликните на label, и на сам радиобуттон):
PHP:
<form name="form1" action="">
	<input type="radio" name="provider" id="prov1" value="1" onClick="alert(this.value);"><label for="prov1"><span class="ProviderName">Provider 1</span></label><BR>
	<input type="radio" name="provider" id="prov2" value="2" onClick="alert(this.value);"><label for="prov2"><span class="ProviderName">Provider 2</span></label><BR>
	<input type="radio" name="provider" id="prov3" value="3" onClick="alert(this.value);"><label for="prov3"><span class="ProviderName">Provider 3</span></label><BR>
</form>
 

Krisha

pain in the neck
Opera 7.10 build 2840, Windows 2000
Не работает.

-~{}~ 01.03.04 18:27:

Хотя, имхо, ничего печального :)
 

Ямерт

The Old One
А мне вот печально - у меня в радиобуттоне процедура висит на onClick....
Пока вижу выход так:
<label for="..." onClick="if (isWinOpera7()) return false">...</label> - чтоб пользователи кликали по буттонам.

-~{}~ 01.03.04 19:59:

tony2001 - т.е. алерт выскакивает и тогда, когда кликаешь на лэйбле?
 

Krisha

pain in the neck
Ямерт
На NN 4.03 тоже не работает, кстати.
Удобно, но неуниверсально - значит лучше не юзать...
 

Ямерт

The Old One
>> На NN 4.03 тоже не работает, кстати
этот тэг, ЕМНИП, появился только в HTML 4.01

Так, похоже что неправ был я.

"When a LABEL element receives focus, it passes the focus on to its associated control" (http://www.w3.org/TR/html4/interact/forms.html#h-17.9)

Попробовал вместо onClick юзать onFocus - работает! Одна проблема: это событие происходит и тогда, когда я фокусирую само окно браузера. Впрочем, в данном случае меня это устраивает.
 

tony2001

TeaM PHPClub
Ямерт
>т.е. алерт выскакивает и тогда, когда кликаешь на лэйбле?
да, всё именно так
 

Ямерт

The Old One
Итак, я пришёл к следующему варианту:
<input type="radio" name="provider" id="prov3" value="3" onFocus="this.checked=true; myProc();"><label for="prov3">....</label>

Работает вроде везде :)
 
Сверху