to znaczy:
<form 1>
<input type="hidden" name="url" value="1">
</form 1>
i
<form 2>
<input type="hidden" name="url" value="2">
</form 2>
Czy to jest dozwolone i ważne?
html
validation
forms
Rohan
źródło
źródło
Odpowiedzi:
Tak, to jest ważne
To jest dobre
<form name="form1"> <input type="hidden" name="url" value="1"> </form> <form name="form2"> <input type="hidden" name="url" value="2"> </form>
Jest to również w porządku i będzie generalnie interpretowane jako tablica wartości, np. W
{url: [1, 2]}
zależności od tego, co robi twój serwer. W kodowaniu adresu URL będzie to wyglądaćurl=1&url=2
.<form name="form1"> <input type="hidden" name="url" value="1"> <input type="hidden" name="url" value="2"> </form>
źródło
Tak.
Co więcej, jest to niezbędne, jeśli masz do czynienia z grupami przycisków opcji.
źródło
Komunikat „To nie jest dobre” jest poprawnie analizowany w każdej przeglądarce, którą znam; jeśli dwa adresy URL pojawią się w ciągu zakodowanym jako adres URL, zostanie on potraktowany jako tablica. Spróbuj tego w JQuery:
$('<form name="form1">\ <input type="hidden" name="url" value="1">\ <input type="hidden" name="url" value="2">\ </form>').serialize()
a otrzymasz:
"url=1&url=2"
dobrze napisany parser ciągu zapytania zwróci strukturę JSON w następujący sposób:
{"url":["1", "2"]}
Czy to ściśle specyfikacja? Nie, ale też nie tworzy wielowierszowego ciągu poprzez ucieczkę EOL z ukośnikiem odwrotnym, jak to zrobiłem powyżej.
źródło
Tak - każdy prześle tylko wraz z odpowiednimi formularzami.
Jeśli masz je w tej samej formie, jeden zastąpi drugi i nie jest ważny.
EDYCJA: Jak wskazał Mahmoodvcs, nadpisywanie występuje tylko w niektórych językach (takich jak PHP) i nie jest nieodłączne w samym HTML.
źródło
Aby sprawdzić, czy jest prawidłowy, czy nie, utwórz swoją stronę i przetestuj w W3C tutaj:
http://validator.w3.org/
źródło
A) Twój pierwszy przykład jest w porządku, ponieważ czas składania formularzy będzie inny:
<form id="1"> <input type="hidden" name="url" value="1"> </form> <form id="2"> <input type="hidden" name="url" value="2"> </form>
B) Twój drugi przykład również jest w porządku, ale nie jest to standardowa praktyka kodowania:
<form> <input type="hidden" name="url" value="1"> <input type="hidden" name="url" value="2"> </form>
Kod Java dwa wyodrębnia obie wartości:
Map<String,String[]> parmMap = requestObj.getParameterMap(); String input1 = parmMap.get("url")[0]; String input2 = parmMap.get("url")[1];
źródło