2011-03-15 10 views
8

Estaba haciendo una función javascript en la que necesito confirmar la entrada. Escribí el siguiente código pero da un valor negativo, es decir, la parte "else" incluso si ingreso un valor válido. ¿Alguien puede sugerir una solución? archivoPasando valores html a las funciones javascript

HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Javascript App</title> 
<script type="text/javascript" src="app1.js"> 

</script> 
</head> 
<body><h1 id="heading1" style="text-align:center; height:auto; width:auto; font-family:'Arial Black', Gadget, sans-serif">Determinant of a nxn matrix</h1> 
<p id="paragraph1" style="font-family:'Arial Black', Gadget, sans-serif"> This program allows you to compute the determinant of a nxn matrix</p> 

<p> 
Input the order of the matrix 
<br /> 

<input type="text" maxlength="3" name="value" /> 
<input type="button" value="submit" onclick="verifyorder(value)" /> 
</p> 
<p id="error"></p> 
<p id="detspace"></p> 



</body> 
</html> 

Javascript archivo:

function verifyorder(order){ 
; 
    if(order>0){ 
     return true; 
    } 
    else{ 
     alert("Sorry, you need to enter a positive integer value, try again"); 
     document.getElementById('error').innerHTML="Sorry, you need to enter a positive integer value, try again"; 

    } 
} 
+0

El código que envió claramente corre * * después de los problemas que se producen. Supongo que has pasado una * cadena *, no un número, pero sin el código que invoca 'verifyorder' no puedo decirlo. – Malvolio

+0

No hay nada en su código que asocie la variable de Javascript (indefinida y no inicializada) denominada "valor" con un elemento DOM que tiene el nombre de "valor". Necesita de alguna manera decirle al Javascript que encuentre ese elemento de entrada y que extraiga su valor. –

+0

¿Cómo hago eso? –

Respuesta

5

Aquí está el JSfiddle Demo

he cambiado el código HTML y darle a su campo de texto de entrada un identificador de valor. Eliminé el parámetro pasado para su función de orden de verificación y, en su lugar, tomé el contenido de su campo de texto utilizando document.getElementById(); entonces puedo convertir el str en valor con +order para que pueda comprobar si es mayor que cero:

<input type="text" maxlength="3" name="value" id='value' /> 
<input type="button" value="submit" onclick="verifyorder()" /> 
</p> 
<p id="error"></p> 
<p id="detspace"></p> 

function verifyorder() { 
     var order = document.getElementById('value').value; 
     if (+order > 0) { 
      alert(+order); 
      return true; 
     } 
     else { 
      alert("Sorry, you need to enter a positive integer value, try again"); 
      document.getElementById('error').innerHTML = "Sorry, you need to enter a positive integer value, try again"; 
     } 
    } 
+1

¿cómo si quiero traer el param a los javascripts? 'javascript: somefunc (someparams);' como este? – jboxxpradhana

-3

Probar: if(parseInt(order)>0){....

18

Dale el cuadro de texto un id de "txtValue" y cambiar la declaración botón de entrada a lo siguiente:

<input type="button" value="submit" onclick="verifyorder(document.getElementById('txtValue').value)" /> 
+3

La mejor respuesta aquí, que hace uso de los argumentos de la función. –

+1

Esta respuesta debe ser aceptada. – madrick

0

en pocas palabras atributo id en el campo de texto de entrada -

<input type="text" maxlength="3" name="value" id="value" /> 
Cuestiones relacionadas