Así que digamos que tengo un código que se ve así y quiero que el formulario solo se envíe si la suma de xey es 10 o menos. Ahora, cuando ejecuto este código, ignora por completo el "máximo" y simplemente envía el formulario. Tan pronto como elimino el "solo lectura", se ve el "máximo". ¿Hay alguna forma de tener un máximo para un elemento de solo lectura? Y si es así, ¿cómo?
<!DOCTYPE html> <html> <head> <title>Max for readonly</title> </head> <body> <script> var x = 5; var y = 7; var sum = x + y; document.getElementById('demo').value = sum; </script> <form> <input id="demo" type="number" max="10" readonly> <input type="submit"> </form> </body> </html>Gracias por adelantado
No puede hacer esto: document.getElementById('demo').value = sum; si en el momento actual la entrada con id = 'demo' es de solo lectura. En su caso, no está realizando una asignación, porque el elemento es de solo lectura. Es por eso que el control máximo no funciona para usted. Ya que no hay valor allí. Puede hacer una suma y solo luego establecer su entrada readonly = true;
<!DOCTYPE html> <html> <head> <title>Max for readonly</title> </head> <body> <script> var x = 5; var y = 7; var sum = x + y; document.getElementById('demo').value = sum; document.getElementById('demo').readOnly = true; </script> <form> <input id="demo" type="number" max="10"> <input type="submit"> </form> </body> </html> <!DOCTYPE html> <html> <head> <title>Max for readonly</title> </head> <body> <form> <input id="demo" type="number" max="10"> <input type="submit"> </form> <script> var x = 5; var y = 7; var sum = x + y; document.getElementById('demo').value = sum; document.getElementById('demo').readOnly = true; </script> </body> </html>