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?
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?
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>
Tak.
Co więcej, jest to niezbędne, jeśli masz do czynienia z grupami przycisków opcji.
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.
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.
Aby sprawdzić, czy jest prawidłowy, czy nie, utwórz swoją stronę i przetestuj w W3C tutaj:
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];