qrzysztof
18.01.2010, 14:41:18
Mam formularz a w nim dwa elementy typu radio.
Elementy radio są nieaktywne (disabled). Mam ustawione onclicki na tych elementach oraz na całym formularzu. Potrzebuję żeby obszar, na którym te elementy radio się znajdują:
1) reagował na kliknięcie myszką,
2) nie chcę natomiast żeby użytkownik miał możliwość zaznaczania tych elementów.
Jak ich nie zablokuję to onclick zadziała, ale będzie można je dowolnie zaznaczać. Jak zablokuję to onclick nie działa i do tego "zasłaniają" formularz (choć niby powinny być jego częścią) i nie działa w tym miejscu również onclick formularza.
Da się to jakoś sprytnie rozwiązać, czy nie ma na to rady i tak musi już być?
skowron-line
18.01.2010, 15:01:37
W funkcji którą wywołujesz po onClick.
if( obj.getAttribute( 'disabled' )) == 'disabled' ) return;
obj to oczywiście przekazany obiekt.
qrzysztof
18.01.2010, 15:31:36
Nie bardzo rozumiem. W funkcji, którą mam w onclicku tego elementu radio mam to umieścić?
Onclick przecież i tak się nie wykona jeśli elemennt jest nieaktywny (disabled).
skowron-line
18.01.2010, 15:34:31
Cytat(qrzysztof @ 18.01.2010, 15:31:36 )

Nie bardzo rozumiem. W funkcji, którą mam w onclicku tego elementu radio mam to umieścić?
Onclick przecież i tak się nie wykona jeśli elemennt jest nieaktywny (disabled).
Kurna sorki, przeczytałem jeszcze raz twój 1 post i nadal nie bardzo kumam co chcesz osiągnąć.
qrzysztof
18.01.2010, 15:42:22
Nie chcę, żeby nie było reakcji na myszkę gdy są disabled - tak jest domyślnie.
Chcę na odwrót - żeby reakcja była gdy są disabled.
Ewentualna alternatywa jest taka, że nie muszą być disabled, ale nie powinno być wtedy możliwości ich zaznaczania.
bastard13
18.01.2010, 16:20:10
To zrób coś takiego:
<span onclick="działanie"><input type="radio" disabled="disabled" /></span>
i już po problemie.
OnClick działa, a radio jest nieaktywne.
qrzysztof
18.01.2010, 16:58:17
To niestety nie działa. Tak jak "zasłaniały" te elementy radio formularz, tak samo "zasłaniają" spana.
bastard13
18.01.2010, 20:11:13
Rzeczywiście:)
Ale przy przycisku zawsze masz jakiś tekst i jak on również znajdzie się w spanie to już po kłopocie.
kefirek
18.01.2010, 20:33:32
Można też tak
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#click").click(function(){
alert('test');
$(this).attr('checked', false);
});
});
</script>
</head>
<body>
<input id="click" type="radio"/>
</body>
</html>
qrzysztof
19.01.2010, 00:41:18
Cytat(bastard13 @ 18.01.2010, 20:11:13 )

Rzeczywiście:)
Ale przy przycisku zawsze masz jakiś tekst i jak on również znajdzie się w spanie to już po kłopocie.
Tekst mam w <label> i tak musi zostać. Próbowałem w spanie, próbowałem w divie i nie działa.
Rozwiązanie kefirka pewnie skuteczne, tyle że szkoda mi taki duży plik ładować dla tego. Coś sprytniejszego by się przydało.
lukaszgolder
19.01.2010, 00:56:01
Jaka jest idea dodawania inputów w które nie można klikać? Nie możesz zrobić diva "input - radio" podobnego?
qrzysztof
19.01.2010, 08:51:01
W nie można klikać, to tylko jeden z ich stanów.
Najpierw są klikalne, ale po wybraniu opcji robią się nieaktywne i zaczyna się kilkusekundowe odliczanie, które pokazuje prawidłową opcję (jeśli została wybrana zła). W tym momencie drugie kliknięcie powinno przerwać odliczanie i przenieść usera do następnej strony. Tymczasem na to drugie kliknięcie nie ma w obrębie tych elementów radio reakcji. Reakcję taką z łatwością można uzyskać na <label> i na samym formularzu (ale nie pod elementami radio) natomiast ludzie najczęściej klikają w "kółeczka".
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.