Łukasz Piwowar

Łukasz Piwowar DigitalZone -
Interactive Agency

Temat: Formularz i aktywne pola

Posiadam formularz rejestracyjny który muszę przerobić. Mam listę opcji do wybrania i dwa pola input:

<select>
<option>Opcja 1</option>
<option>Opcja 2</option>
</select>
<input>
<input>


Potrzebuje za pomoca jQuery aktywować jedno pole input w zależności od tego która opcja jest wybrana. Próbowałem z
http://api.jquery.com/selected-selector/
i niestety niewiele z tego wyszło (funkcja po prostu nie działa).

Jest to formularz generowany przez skrypt whmcs, dlatego nie mogę nadać dowolnych nazw i wartości formularzowi.
Krzysztof N.

Krzysztof N. CEO. Aplikacje
internetowe i
mobilne. Symfony,
Zend.

Temat: Formularz i aktywne pola

Łukasz Piwowar:
Posiadam formularz rejestracyjny który muszę przerobić. Mam listę opcji do wybrania i dwa pola input:

<select>
<option>Opcja 1</option>
<option>Opcja 2</option>
</select>
<input>
<input>


Potrzebuje za pomoca jQuery aktywować jedno pole input w zależności od tego która opcja jest wybrana. Próbowałem z
http://api.jquery.com/selected-selector/
i niestety niewiele z tego wyszło (funkcja po prostu nie działa).

Jest to formularz generowany przez skrypt whmcs, dlatego nie mogę nadać dowolnych nazw i wartości formularzowi.
Pytanie pierwsze: umiesz pisać w JavaScript i możesz / potrafisz / umiesz * stworzyć odpowiedni kod z użyciem jQuery?

* - niepotrzebne skreślić
Łukasz Piwowar

Łukasz Piwowar DigitalZone -
Interactive Agency

Temat: Formularz i aktywne pola

Krzysztof N.:
Pytanie pierwsze: umiesz pisać w JavaScript i możesz / potrafisz / umiesz * stworzyć odpowiedni kod z użyciem jQuery?

* - niepotrzebne skreślić

Nie uczyłem się nigdy js. Do tej pory jedynie na podstawie dokumentacji jQuery tworzyłem proste modyfikacje. Jeżeli jesteś w stanie pomóc, to chętnie skorzystam z pomocy, jeżeli chcesz mi powiedzieć czego nie umiem i czego powinienem się nauczyć to wyślij PW, nie zaśmiecajmy forum :)
Krzysztof N.

Krzysztof N. CEO. Aplikacje
internetowe i
mobilne. Symfony,
Zend.

Temat: Formularz i aktywne pola

Łukasz Piwowar:
Nie uczyłem się nigdy js. Do tej pory jedynie na podstawie dokumentacji jQuery tworzyłem proste modyfikacje. Jeżeli jesteś w stanie pomóc, to chętnie skorzystam z pomocy, jeżeli chcesz mi powiedzieć czego nie umiem i czego powinienem się nauczyć to wyślij PW, nie zaśmiecajmy forum :)
W porządku. Potrzebujesz wykonać coś takiego:
1. Podpinasz obsługę zdarzenia "change" dla pola "select".
2. Sprawdzasz jaka wartość została przesłana.
3. Aktywujesz odpowiednie pole "input" za pomocą "$('_twoj_wlasciwy_selektor_').removeAttr('disabled')". Zakładam, że po wczytaniu podstrony obydwa pola "input" są nieaktywne / zablokowane.

Temat: Formularz i aktywne pola

Witam. Domyślam się, że wygenerowany skrypt wygląda dokładnie tak jak Pan Krzysztof napisał, czyli wersja najtrudniejsza - nie da się nadać atrybutów ID polom select oraz input w formularzu. Również w tym przypadku jest na to sposób. Przede wszystkim trzeba objąć formularz w <div></div> i nadać mu ID, w moim kodzie to "test". Niezawodny skrypt wygląda w ten sposób:

<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
<script>
$(document).ready( function()
{
$( '#test input' ).attr( 'disabled', 'disabled' );
$( '#test select' ).change( function( )
{
var selectedValue = $(this).val();
var selectedIndex = null;
if( selectedValue == 'Opcja 1' )
{
selectedIndex = 0;
}
else if( selectedValue == 'Opcja 2' )
{
selectedIndex = 1;
}
if( selectedIndex != null )
{
$( '#test input' ).each( function( inputIndex )
{
if( inputIndex == selectedIndex )
{
$(this).removeAttr( 'disabled' );
}
else
{
$(this).attr( 'disabled', 'disabled' );
}
} );
}
} );
} );
</script>


Oczywiście trzeba jeszcze dodać plik z jQuery, w moim przypadku to "jquery-1.4.2.min.js" .

Jeśli formularza nie da się objąć w jakiś <div> i nadać mu nazwy, to da się to rozwiązać inaczej, aczkolwiek jest to bardziej skomplikowane.

Pomogło?
Krzysztof N.

Krzysztof N. CEO. Aplikacje
internetowe i
mobilne. Symfony,
Zend.

Temat: Formularz i aktywne pola

Piotr Koleśnik:
Domyślam się, że wygenerowany skrypt wygląda dokładnie tak jak Pan Krzysztof napisał, czyli wersja najtrudniejsza - nie da się nadać atrybutów ID polom select oraz input w formularzu.
To co opisałem w 3 punktach to zarys skryptu, słowny opis jak powinien "wyglądać" taki kod i co / jak należy wykonać. Podałem autorowi wątku wędkę, a nie rybę ;)
Piotr Koleśnik:
Również w tym przypadku jest na to sposób. Przede wszystkim trzeba objąć formularz w <div></div> i nadać mu ID, w moim kodzie to "test". Niezawodny skrypt wygląda w ten sposób:

<script type="text/javascript" [/quote]> src="jquery-1.4.2.min.js"></script>[quote] <script>
$(document).ready( function()
{
$( '#test input' ).attr( 'disabled', 'disabled' );
$( '#test select' ).change( function( )
{
var selectedValue = $(this).val();
var selectedIndex = null;
if( selectedValue == 'Opcja 1' )
{
selectedIndex = 0;
}
else if( selectedValue == 'Opcja 2' )
{
selectedIndex = 1;
}
if( selectedIndex != null )
{
$( '#test input' ).each( function( inputIndex )
{
if( inputIndex == selectedIndex )
{
$(this).removeAttr( 'disabled' );
}
else
{
$(this).attr( 'disabled', 'disabled' );
}
} );
}
} );
} );
</script>
Zakładając, że można zaingerować w generowany kod html. Nie czepiam się, stwierdzam. Zaś podany przez Ciebie kod wygląda na działający :)

Następna dyskusja:

Formularz na stronie




Wyślij zaproszenie do