2017-01-28 5 views
0

Ich versuche, etwas auf Absenden des Formulars zu tun, aber wenn ich öffnen Sie die Seite es erfrischend hält, ohne dass ich einreichen oder etwas zu tunJavascript, Seite hält erfrischende

<html> 
<head> 
</head> 
<body> 
    <form id="someForm"> 
     <input id="someInput" /><button>Send</button> 
    </form> 
    <script>   
    document.getElementById('someForm').submit(() => { 
     //do something.. 
    }); 
    </script> 
</body> 
</html> 
+0

'document.getElementById ('someForm') onsubmit = function() {...}' –

Antwort

3

Ihr Code wird submittihng das Formular so bald wie Die Seite wird angezeigt. Das zeigt natürlich wieder die Seite an, die das Formular erneut abgibt.

Das Problem ist hier:

document.getElementById('someForm').submit(() => { // <=== 
    //do something.. 
}); 

Das Anrufe die submit über die Form, die sie trägt. Wenn Ihr Ziel ist es, die Veranstaltung haken, Sie tun es nicht, dass die Art und Weise (sieht aus wie Sie einige jQuery Beispiele gesehen haben), tun Sie es wie folgt aus:

document.getElementById('someForm').addEventListener("submit",() => { // <=== 
    //do something.. 
}, false); 

Randbemerkung: Es gibt definitiv mal wollen Sie eine Pfeilfunktion mit Event-Handlern verwenden, aber viel der Zeit, Sie wollen nicht, weil Sie möchten, dass das Ereignissystem this für Sie auf das Element, an dem Sie den Handler angeschlossen. Also etwas, das man im Kopf behalten sollte.

2
document.getElementById('someForm').submit(() => { 
     //do something.. 
}); 

Der obige Code sagt das Formular zu übermitteln.

Wenn Ihr Ziel ist es, das Formular abschicken, wenn Sie die Taste drücken, es würde wie folgt aussehen:.

document.getElementsByTagName('button').click(function(){ 
    document.getElementById('someForm').submit() 
}) 
Verwandte Themen