2011-10-18 17 views
7

Mam formularz, w którym muszę wyłączyć tablicę pól wyboru i kilka pól, aby użytkownik nie mógł zmienić/zmienić ich wartości. Jednak po przesłaniu formularza wartości POST wyłączonych elementów są niewystępujące/puste. Jak mogę zarządzać tym, co próbuję rozwiązać bez tego problemu?Wartości POST wyłączonych elementów formularza

Teraz jestem wyłączenie pola wyłączając div kontenera tak:

#unselectable { 
    -moz-user-select: -moz-none; 
    -khtml-user-select: none; 
    -webkit-user-select: none; 
    -o-user-select: none; 
    -webkit-user-select: none; 
    cursor:not-allowed; 

} 
+0

Zamknij oznaczanie swoich tytułów. –

Odpowiedz

23

Cóż, są 3 rozwiązania można myślę:

  • uczynić je readonly dodając właściwość readonly do elementu.
  • wyłącz je w CSS/JavaScript.Koloruj, tak jakby był wyłączony, i nie zezwalaj na edycję za pomocą JavaScript,
  • Pozostaw to wyłączone i usuń wyłączone przy wysyłaniu.

Wybieraj :)

+0

Jak usunąć wyłączone przy wysyłaniu? – bikey77

+2

Napisałem mały skrypt, który przechwytuje wszystkie elementy formularza i włącza je po przesłaniu formularza. Dzięki! – bikey77

0

można użyć „read-only” zamiast niepełnosprawnych, która powinna mieć upragnionego efektu

You może również użyć javascript do przesłania formularza, a następnie wstępnie złożyć wyłączenie (włączenie: P) różnych pól?

6

można użyć readonly zamiast disabled wich jest prawie taka sama dla użytkownika (nie może być editet), ale wartości readonly -elements się składać natomiast disabled te nie.

pamiętać, że istnieją some other differences między readonly i niepełnosprawnych wich może prowadzić do innych problemów dla Ciebie:

atrybut niepełnosprawnych

  • Wartości dla niepełnosprawnych elementów formularza nie są przekazywane do procesora metoda. W3C nazywa to pomyślnym elementem. (Działa to podobnie do pól wyboru formularza, które nie są zaznaczone.)
  • Niektóre przeglądarki mogą przesłonić lub zapewnić domyślną stylizację wyłączonych elementów formularza. (Wyszarzyć lub wytłoczyć tekst) Internet Explorer 5.5 jest szczególnie nieprzyjemny w tej kwestii.
  • Elementy formularza nieaktywne nie są ogniskowane.
  • Elementy formularzy niepełnosprawnych są pomijane podczas nawigacji w kartach.

Read Atrybut Tylko

  • Nie wszystkie elementy formularza mają atrybut tylko do odczytu. Najbardziej godne uwagi, atrybuty,, i nie mają atrybutu readonly (chociaż oba mają wyłączone atrybuty).
  • Przeglądarki nie przesyłają domyślnej informacji wizualnej, że element formularza jest tylko do odczytu. (To może być problem ... zobacz poniżej.)
  • Elementy formularzy z zestawem atrybutów readonly zostaną przekazane do procesora formularzy.
  • Elementy formularza tylko do odczytu mogą otrzymać fokus
  • Elementy formularza tylko do odczytu znajdują się w nawigacji z kartami.
2

nie ma sensu wysyłanie tych samych danych do iz powrotem.

Po prostu pozostaw na serwerze po stronie serwera, a następnie użyj go po przesłaniu.

Poza tym, zakładając, że

użytkownik nie może zmienić/zmienić ich wartości.

jest dość głupia.

+0

Jest to formularz, w którym potrzebuję pewnych predefiniowanych wyborów zgodnie z typem użytkownika, który różni się od grupy, dlatego pola muszą być widoczne, ale nie włączone. – bikey77

+1

Nie mówię o widoczności po stronie klienta. Mówię o stronie serwera, która już ma te wartości - sdo, nie ma absolutnie sensu wysyłać ich ponownie. I o głupim założeniu, że użytkownik nie może zmienić wartości –

+0

Przyszedłem tutaj, szukając rozwiązania, aby wysyłać wyłączone dane do serwera, podczas gdy w rzeczywistości nie muszę tego robić wcale, o wiele prostsze rozwiązanie. dzięki – bumperbox