Pregunta

En formularios web ASP.NET y ASP 3 (ASP clásico), me encontré con un problema por el que el nombramiento de su forma de botón de enviar "Enviar" sería "romper cosas". A continuación se muestra el HTML representado:

<input type="submit" name="Submit" value="Submit" id="Submit" />

Yo digo "romper cosas", porque no estoy seguro exactamente por qué o qué sucedió. Sin embargo, los síntomas por lo general eran que al pulsar el botón de enviar en ocasiones no hizo nada decir que simplemente no funcionó. Pero a veces lo hizo el trabajo.

De hecho, acaba de construir una página de prueba rápida con el código de abajo, y sometimiento funcionó bien:

<form id="form1" runat="server">
<div>
    <asp:TextBox ID="txtTest" runat="server" />
    <asp:Button ID="Submit" runat="server" Text="Submit" />
</div>
</form>

Pero , en el pasado, este problema ha surgido, y cambiar el nombre del botón siempre se hace el síntoma desaparezca.

ID Por lo tanto, no todo el código HTML / HTTP / Navegador experto conoce alguna razón por la configuración = "submit" en un botón Enviar causaría ningún problema?

Editar

lo tanto comentario parece sugerir "submit" es una palabra clave reservada. Pero ¿por qué el nombre de "atributos" "id" o intefere con esto? Y cómo esta palabra clave "reservado" se implementan de tal manera que causaría conflictos?

gracias de nuevo

¿Fue útil?

Solución

El elemento form tiene un método denominado submit, pero también tiene los elementos de forma en la forma como miembros.

Si usted tiene un botón en el formulario denominado submit, se podría acceder a él mediante document.form1.submit. Sin embargo, ya que es el mismo nombre que el método submit, ya no hay ninguna manera de acceder a ese método. Si se utiliza el método para enviar el formulario, que ya no funciona.

Por ejemplo, si usted tiene un botón que envía el formulario usando Javascript, que no funciona:

<input type="button" name="submit" onclick="this.form.submit();" value="try" />

Cuando el botón intenta utilizar el método submit, en su lugar recibirá una referencia a sí mismo (y un mensaje de error al intentar llamar, ya que el botón no es una función).

Otros consejos

Le pido que se mantenga alejado de todas las palabras reservadas del DOM de JavaScript. utilizar "mi" frente a todo lo que se define, o $, o alguna otra cosa que claramente no va a entrar en conflicto con las palabras reservadas que se puede accidentalmente acaba de sobrecargar y causar estragos.

El código subyacente que se genera que le permite enlazar eventos en el objeto se nombran en base a los valores especificados.

Sólo tiene que utilizar onsubmit si el problema en el envío del formulario

<form id="form1" runat="server" onsubmit="this.submit()">
<div>
    <asp:TextBox ID="txtTest" runat="server" />
    <asp:Button ID="Submit" runat="server" Text="Submit" Type="submit"/>
</div>
</form>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top