2010-10-12 12 views
0

Pour une raison quelconque, mes gestionnaires d'événements onclick javascript ne fonctionnent pas correctement.javascript Les gestionnaires d'événements onclick ne fonctionnent pas correctement

Voici mon code, le script et le style:

<!DOCTYPE html> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>Quadratic Root Finder</title> 

<script> 
document.ready = function() { 
    document.getElementById('calculate').onClick.calculateQuad() 
    { 
     var inputa = document.getElementById('variablea').value; 
     var inputb = document.getElementById('variableb').value; 
     var inputc = document.getElementById('variablec').value; 

     root = Math.pow(inputb,2) - 4 * inputa * inputc; 
     root1 = (-inputb + Math.sqrt(root))/2*inputa 
     root2 = (-inputb + Math.sqrt(root))/2*inputa 

     document.getElementById('root1').value = root1; 
     document.getElementById('root2').value = root2; 
     if(root<'0') 
     { 
      alert('This equation has no real solution.') 
     } 
     else { 
      if(root=='0') 
      { 
       document.getElementById('root1').value = root1 
       document.getElementById('root2').value = 'No Second Answer' 
      } 
      else { 
       document.getElementById('root1').value = root1 
       document.getElementById('root2').value = root1 
       } 
      } 
    }; 
    document.getElementById('erase').onClick.document.getElementById('form1').reset(); 
} 
</script> 

<style> 
#container 
{ 
    text-align: center; 
} 
</style> 

</head> 

<body> 
<div id="container"> 
<h1>Quadratic Root Finder!</h1> 
<form id="form1"> 
    a:<input id="variablea" value="" type="text"> 
    <br/> 
    b:<input id="variableb" value="" type="text"> 
    <br /> 
    c:<input id="variablec" value="" type="text"> 
    <br /> 
    <input id="calculate" value="Calculate!" type="button"> 
    <input id="erase" value="Clear" type="button"> 
    <br /> 
    <br /> 
    Roots: 
    <br /> 
    <input id="root1" type="text" readonly> 
    <br /> 
    <input id="root2" type="text" readonly> 
</form> 
</div> 
</body> 
</html> 

Y at-il une raison explicables?

Répondre

1

Il n'y a pas vraiment d'événement "prêt" comme ça. Si vous voulez faire des choses à ce qui est généralement considéré comme le point «prêt», vous aurez besoin d'utiliser un cadre. Sinon, vous pouvez utiliser "onload" au lieu de "ready".

Si, par exemple, que vous utilisiez jQuery, vous feriez ceci:

$(function() { 
    var inputa = document.getElementById('variablea').value; 
    var inputb = document.getElementById('variableb').value; 
    var inputc = document.getElementById('variablec').value; 
    // etc ... 
}); 

Sans cela, vous feriez:

window.onload = function() { 
    // all your stuff 
}; 

aussi:

... .onclick.calculateQuad() { 

n'a aucun sens du tout.

+0

OK, je viens d'essayer parce que l'autre méthode ne fonctionnait pas, mais je me suis dit pourquoi , Merci. – Qcom

1
.onClick.document.getElementById('form1').reset() 

Je pense que vous voulez transformer cela en:

.onclick = function() { document.getElementById('form1').reset(); } 
3

Ceci est incorrect
document.getElementById('calculate').onClick.calculateQuad()
Il doit être
document.getElementById('calculate').onClick = function()

Et cela est faux aussi
document.getElementById('erase').onClick.document.getElementById('form1').reset();
Fixation:.
document.getElementById('erase').onClick = function(){document.getElementById('form1').reset();}

+0

Je pense que vous voulez dire '.onclick = calculateQuad' (définit la fonction elle-même). Je ne pense pas que ce que vous avez va fonctionner. Pas sûr à 100%, mais je suis sûr que ce que je viens de faire fonctionnera. La partie 2 semble juste, cependant. –

+0

Oui, merci. –

0

si vous pouvez utiliser Jquery

$ (document) .ready (function() { de $ ("# de variableA") cliquez sur (function (élément) { ///....opération }); });

vous pouvez utiliser $ (« entrée »). Cliquez sur (function (element) {}) fonctionnent tous les éléments d'entrée