Este artículo describe el método de JavaScript para determinar si un usuario ha modificado el formulario. Compártelo para su referencia. El análisis específico es el siguiente:
Este código JS puede determinar si el usuario ha modificado el contenido del formulario. Si el formulario se modifica y sale del navegador, le recordará al usuario si guardar el contenido del formulario. Es un código muy útil.
función formisDirty (form) {for (var i = 0; i <form.elements.length; i ++) {var elemento = form.elements [i]; var type = element.type; if (type == "casilla de verificación" || type == "radio") {if (element.ecked! = element.defaultChecked) {return true; }} else if (type == "Hidden" || type == "contraseña" || type == "text" || type == "textArea") {if (element.value! = element.defaultValue) {return true; }} else if (type == "select-one" || type == "select-multiple") {for (var j = 0; j <element.options.length; j ++) {if (element.options [j] .selected! = element.options [j] .Defaultelected) {return true; }}} return false;}Ejemplo de uso: al salir del navegador, si el usuario modificó el formulario, se le recordará al usuario si lo guardará.
window.onbeforeNoNLOAD = function (e) {e = e || Window.event; if (formisDirty (document.forms ["someForm"])) {// para IE y Firefox if (e) {e.returnValue = "Tienes cambios no salvos"; } // para el retorno de Safari "Tienes cambios no salvos"; }};Aquí hay un código de ejemplo completo
La copia del código es la siguiente: haga clic en el botón A continuación. Ahora cambie algunos valores en el formulario y haga clic en el botón nuevamente.
<form de nombre = "FooForm">
<input type = "text" name = "t"> <br>
<input type = "text" name = "2" valor = "predeterminado"> <br>
<Seleccione Name = "Some">
<opción valor = "fooo" selected = ""> foo </option>
<opción valor = "bar"> bar </opción>
</select> <br>
</form>
<Button onClick = "alerta (formisDirty (document.fooform))"> Haga clic para verificar si el formulario está sucio </botón>
<br>
<script>
función formisDirty (form) {
para (var i = 0; i <form.elements.length; i ++) {
var elemento = form.elements [i];
var type = element.type;
if (type == "CheckBox" || type == "radio") {
if (element.ecked! = element.defaultchecked) {
devolver verdadero;
}
}
else if (type == "Hidden" || type == "contraseña" ||
Tipo == "Texto" || type == "TextArea") {
if (element.value! = element.defaultValue) {
devolver verdadero;
}
}
else if (type == "select-one" || type == "select-multiple") {
for (var j = 0; j <element.options.length; j ++) {
if (element.options [j] .selected! =
element.options [j] .defaultelected) {
devolver verdadero;
}
}
}
}
devolver falso;
}
</script>
Espero que este artículo sea útil para la programación de JavaScript de todos.