es decir:
<form 1>
<input type="hidden" name="url" value="1">
</form 1>
y
<form 2>
<input type="hidden" name="url" value="2">
</form 2>
¿Está permitido y es válido?
es decir:
<form 1>
<input type="hidden" name="url" value="1">
</form 1>
y
<form 2>
<input type="hidden" name="url" value="2">
</form 2>
¿Está permitido y es válido?
Respuestas:
Si es valido
Esto es bueno
<form name="form1">
<input type="hidden" name="url" value="1">
</form>
<form name="form2">
<input type="hidden" name="url" value="2">
</form>
Esto también está bien y generalmente se interpretará como una matriz de valores, por ejemplo {url: [1, 2]}
, dependiendo de lo que haga su servidor. En una codificación de URL, se verá así url=1&url=2
.
<form name="form1">
<input type="hidden" name="url" value="1">
<input type="hidden" name="url" value="2">
</form>
Si.
Además, es esencial si se trata de grupos de botones de opción.
"Esto no es bueno" se analiza correctamente en todos los navegadores que conozco; si aparecen dos URL en la cadena codificada de URL, se tratará como una matriz. Pruebe esto en JQuery:
$('<form name="form1">\
<input type="hidden" name="url" value="1">\
<input type="hidden" name="url" value="2">\
</form>').serialize()
y obtendrás: "url=1&url=2"
un analizador de cadenas de consulta bien escrito devolverá una estructura json como esta:
{"url":["1", "2"]}
¿Es estrictamente especificación? No, pero tampoco lo es crear una cadena de varias líneas al escapar del EOL con una barra invertida, como hice anteriormente.
Sí, cada uno solo enviará sus respectivos formularios.
Si los tiene en el mismo formulario, uno anulará al otro y no es válido.
EDITAR: Como señaló Mahmoodvcs, la anulación solo ocurre en algunos lenguajes (como PHP), ya que no es inherente al HTML en sí.
Para probar si es válido o no, cree su página y pruebe en W3C aquí:
A) Su primer ejemplo está bien, porque el tiempo de envío de los formularios será diferente:
<form id="1">
<input type="hidden" name="url" value="1">
</form>
<form id="2">
<input type="hidden" name="url" value="2">
</form>
B) Su segundo ejemplo también está bien, pero no es una práctica de codificación estándar:
<form>
<input type="hidden" name="url" value="1">
<input type="hidden" name="url" value="2">
</form>
El código dos de Java extrae ambos valores:
Map<String,String[]> parmMap = requestObj.getParameterMap();
String input1 = parmMap.get("url")[0];
String input2 = parmMap.get("url")[1];