Question

<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" />

Si je change "soumis ();" à "alerter ('ici');" Il appelle parfaitement la fonction d'alerte. Pourquoi n'appelle-t-il pas la fonction de soumission?

Je veux que la fonction soit appelée lorsque l'utilisateur appuie sur Entrée.http://jsfiddle.net/kaninepete/jsar4/

Remarque: Le bouton sur le côté est dans un but différent, et ne fait pas partie du problème.ÉditerPlus de travail, essayer de suivre l'exemple des chrétiens m'a fait venir ici http://jsfiddle.net/kaninepete/mgxng/

Je ne vois pas pourquoi c'est différent de son exemple! Tout ce que j'obtiens est "{" Error ":" Veuillez utiliser la demande de post "}" et ses œuvres parfaitement.

Était-ce utile?

La solution

Il n'y a pas de méthode OnSubmit sur les éléments d'entrée.

Sur Fiddle, si vous modifiez le type = "bouton" en type = "soumettre" sur le bouton d'entrée, le formulaire est appelé lorsque vous appuyez sur le bouton.

Éditer:

Votre problème semble être deux choses.

L'un est que le submit est une méthode native dans le navigateur. Si vous changez le nom en par exemple. mySubmit résout le problème.

La seconde est que JSFiddle a mis le code JS dans une portée. Cela signifie que les méthodes que vous définissez ne seront pas disponibles en dehors de cette portée. Ceci est ressenti en rendant la méthode globale:

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

Mon violon: http://jsfiddle.net/kroonix/uttwf/

Autres conseils

J'ai essayé de se reproduire en dehors de JSFiddle, et j'ai l'impression que cela fonctionne tel quel. Peut-être que je n'ai pas obtenu le code complet?

C'est ce que j'ai utilisé (même supprimé le bouton discuté précédemment). Cela fonctionne lorsque vous appuyez sur Entrée dans la zone de texte (testée en FF). Y a-t-il quelque chose qui me manque?

<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>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top