Saludos colegas tengo una duda: Por que cuando comparo de input text uno que me muestra un valor numerico de una cosulta a una tabla y otro que me recibe un numero por teclado al hacer la comparacion de por ejemplo
10 < 2 me da false!!
el numero 10 es el valor de recibo de la consulta a la base de datos y el 2 es el numero que yo ingreso por teclado
ya he hecho pruebas y encontre que si en cambio en el input text de teclado ingreso el mismo numero pero de la siguiente manera si hace correctamente la comparacion
10 < 02 de esta forma si da true!! alguien podria comentar que puede estar sucediendo? y como podria resolverlo?
que tal si empiezas por el codigo :P
usa las etiquetas GeSHi... y creo que tengo idea de cual es tu problema, pero ver el código lo confirmará o no
Este es el codigo javascript donde hago la recoleccion de diversos datos de otros inputs entre ellos el del valor "quty" el cual quiero comparar o verificar que sea menor o igual que otro campo que obtengo por una consulta el cual se llama "stock"
en esta parte: document.getElementById('quty').value<=document.getElementById('stock').value && document.getElementById('quty').value!="0" && document.getElementById('quty').value!=""
codigo de funcion completa:
function add_values(){
if(unique_check()){
if(document.getElementById('edit_guid').value==""){
if(document.getElementById('item').value!="" && document.getElementById('quty').value<=document.getElementById('stock').value && document.getElementById('quty').value!="0" && document.getElementById('quty').value!="" && document.getElementById('cost').value!="" && document.getElementById('total').value!=""){
code=document.getElementById('item').value;
quty=document.getElementById('quty').value;
cost=document.getElementById('cost').value;
sell=document.getElementById('sell').value;
disc=document.getElementById('stock').value;
total=document.getElementById('total').value;
item=document.getElementById('guid').value;
main_total=document.getElementById('pos_total').value;
roll=parseInt(document.getElementById('roll_no').value);
este es el input que recibe por teclado:
<td><input name="" type="text" id="quty" maxlength="200" class="round default-width-input my_with" onKeyPress="quantity_chnage(event);return numbersonly(event);" onkeyup="total_amount();unique_check()" /></td>
si, era lo que creía... el asunto es que cuando lees los "value" te lo traes en formato string
es decir el está comparando palabras... para corregir eso usa parseInt
parseInt(document.getElementById('quty').value)<=parseInt(document.getElementById('stock').value)
eso lo que hará es convertirlos a valores enteros y ahí si la comparación numérica es valida...
te recomiendo aprender jQuery.... resumiría un poco tu codigo y es mucho más facil de manejar basicamente
if(document.getElementById('item').value!="" && document.getElementById('quty').value<=document.getElementById('stock').value && document.getElementById('quty').value!="0" && document.getElementById('quty').value!="" && document.getElementById('cost').value!="" && document.getElementById('total').value!="")
quedaría
if($("#item").val()!="" &&
parseInt($("#quty").val())<=parseInt($("#stock").val()) &&
parseInt($("#quty").val())>0 &&
$("#cost").val()!="" &&
$("#total").val()!=""
){
)
haciendo el codigo más visible y manejable... a demás los selectores que usa son los de css que son muy poderosos :P
aqui un tuto :P (http://www.javascriptya.com.ar/jquery/)
Ya andamos de vuelta nada mas para comentarles que ya encontre la solucion y es que me hacia falta hacerle un parseo como int al valor capturado como teclado ya que la tabla la he configurado como que acepte para el campo de la consulta valores int, con esto se ha solucionado el problema les comparto lo que agregue:
parseInt(document.getElementById('quty').value)<=document.getElementById('stock')
Y es que ya habia hecho la prueba de poner el parseInt en un proceso que ocurre despues de la comparacion y observe si hacia la conversion solo que al querer agregarlo en esta parte me daba un error de sintaxis y no hallaba la razon error de dedo supongo de cualquier forma seguire haciendo pruebas a ver con detalle me encuentro pero por ahora la duda esta solucionada muchas gracias engel lex al parecer me ganaste a publicar y si al parecer estabamos en la misma sincronia y por lo del jquery te comento que soy nuevo en el mundo del desarrollo web soy ingeniero de control y automatizacion husmeando en estos nuevos horizontes espero primero conocer mas sobre javascript y php y luego pasarme a jquery
no, no es pasarte, jquery es una libreria para jscript, es muy potente y resume mucho los procesos, por lo menos dale una ojeada al tutorial y mira como facilita todo ;)
Alguien ya había tenido un problema similar antes. Por regla, siempre cualquier valor que venga de un formulario será en String.