Witam!
Od razu zaznaczam, że nie siedzę w javascripcie, więc nie bijcie Prawdę mówiąc, to do dzisiaj nie miałem o nim/niej zielonego pojęcia. Jednak korciły mnie dwie sprawy, więc przysiadłem i oto rezultat.
(Opera 9.01 [build 383], Firefox 1.5.0.4, Debian Testing)
1. Atrybut 'pattern' jest null czy nie?
<script language="javascript"> function checkNull() { var form = document.forms["form"]; var e = form.elements["field"]; var isNull1 = e.boo != null ? "not null" : "null"; var isNull2 = e.pattern != null ? "not null" : "null"; } </script> <form method="get" name="form" onSubmit="return checkNull()"> <input type="hidden" name="field" value=""> <input type="submit"> </form>
Pod operą zmienna isNull1="null", a isNull2="not null". Pod firefoxem obie zmienne mają wartość "null".
Sprawdź
Z powodu powyższego błędu/ficzeru nie działa mi pobieranie historii konta w ING (ale zawsze można w pasku adresu odpowiednie parametry ręcznie wpisać )
2. Czy kolejność przypisywania atrybutów jest ważna?
function addHidden(value) { var e1 = document.createElement("INPUT"); e1.value = value; e1.type = "hidden"; e1.name = "hiddenField1"; document.forms["fForm"].appendChild(e1); var e2 = document.createElement("INPUT"); e2.type = "hidden"; e2.value = value; e2.name = "hiddenField2"; document.forms["fForm"].appendChild(e2); }
Wartością elementu hiddenField1 będzie pusty string, natomiast wartością elementu hiddenField2 będzie wartość przekazana w parametrze. Jedyna różnica jaka tu występuje, to kolejność ustawiania atrybutów "type" i "value". Oczywiście pod firefoxem ta kolejność nie ma znaczenia i wartości obu elementów są równe przekazanemu parametrowi.
Sprawdź - Podany link otwiera stronkę z polem tekstowym i przyciskiem. Należy coś wpisać i kliknąć. Każda zmiana zawartości pola tekstowego powoduje dodanie do formularza dwóch elementów typu hidden o wartości równej aktualnej zawartości pola tekstowego. Po kliknięciu na przycisk wyświetla się alert() ze spisem elementów formularza i ich wartościami.
Poniżej załączam źródła, do których w chwili obecnej wskazuja powyższe linki:
1testNull.html
1testJS.html