Frage

<form onsubmit="submit(); return false;" name="text" id="form" method="get">
<input type="feild" style="font-size: 150%;" id="field" name="field" value=""
onSubmit="this.value='';"/>
<input type="button" id="add" style="font-size: 150%;" value=" Add tally to score "/>
<input type="submit" value="submit" style="visibility:hidden" />

Wenn ich "submit ();" änderezu "alarmieren ('hier');"es ruft die Alarmfunktion perfekt auf. Warum wird die Submit-Funktion nicht aufgerufen?

Ich möchte, dass die Funktion aufgerufen wird, wenn der Benutzer die Eingabetaste drückt. http://jsfiddle.net/kaninepete/JsAr4/

Hinweis: Die Schaltfläche an der Seite dient einem anderen Zweck und ist nicht Teil des Problems. Bearbeiten Mehr Arbeit, der Versuch, dem Beispiel der Christen zu folgen, hat mich hierher gebracht.a>

Ich verstehe nicht, warum das anders ist als sein Beispiel! Alles was ich bekomme ist "{" Fehler ":" Bitte POST Anfrage verwenden "}" und seine Werke perfekt.

War es hilfreich?

Lösung

Es gibt keine Methode zum Einreichen von Eingabeelementen.

Wenn Sie in der Geige auf der Eingabetaste den Typ="button" in "type=" submit "ändern, wird das Formular aufgerufen, wenn Sie den Button drücken.

Bearbeiten:

Ihr Problem scheint zwei Dinge zu sein.

Zum einen ist der submit eine native Methode im Browser.Wenn Sie den Namen in z.mySubmit löst das Problem.

Das zweite ist, dass JSFiddle den js-Code in einen Bereich einfügt.Dies bedeutet, dass die von Ihnen definierten Methoden außerhalb dieses Bereichs nicht verfügbar sind.Dies wird behoben, indem die Methode global gemacht wird:

window.mySubmit = function () {
    alert('test');
}

Meine Geige: http://jsfiddle.net/KrooniX/UttWF/

Andere Tipps

Es wurde versucht, außerhalb von jsfiddle zu reproduzieren, und es fühlt sich an, als würde es so funktionieren, wie es ist.Vielleicht habe ich nicht den vollständigen Code erhalten?

Dies ist, was ich verwendet habe (sogar die zuvor besprochene Schaltfläche entfernt).Dies funktioniert, wenn Sie im Textfeld die Eingabetaste drücken (getestet in FF).Fehlt mir etwas?

<html>

<head>

<style>
</style>

<script lang="javascript">

var tally = "0";
window.onload = setup;

function setup() {
    drawTally();
    document.getElementById("add").onclick = addScore;
    document.getElementById("form").onSubmit= submit;
}

function addScore() {
    document.getElementById('change').innerHTML = parseInt(document.getElementById('change').innerHTML)+tally;
    tally=0;
}

function submit(){
    alert("it worked!");
}

function drawTally() {
    var elem = document.getElementById('tallyDisp');
    //var tally = 0;
    if (elem && elem.getContext) {
        var context = elem.getContext('2d');
        if (context) {
            context.fillStyle = '#9f9';
            context.fillRect(0, 0, 300, 200);
            context.fillStyle = '#00f';
            context.font = 'bold 100px sans-serif';
            context.textAlign = 'center';
            context.textBaseline = 'middle';
            context.fillText(tally, 150, 100);
        }
    }
}
setInterval("drawTally();", 60);
</script>


<body>
  <h1>Farkle</h1>
<canvas height="200" width="300" id="tallyDisp">Oops!</canvas>

<form onsubmit="tally=parseInt(tally)+parseInt((text.elements.field.value));
document.text.elements.field.value=''; return false;" id="form" name="text">
    <input type="feild" onsubmit="this.value='';" value="" name="field" id="field" style="font-size: 150%;">

</form>
<p>Your score is <span id="change"> 0</span>!</p>


</body>
</html>

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top