javascript - Could someone explain why my functions are not working? -
so i'm new javascript , i'm trying simple enter text , check it. doesn't seem work way want to. want of inputs go through checkinputs. after of them 100% want check if hoursworked , horlyrate numbers above 0. seems move on checknumbervalidation without checking if inputs filled.
i got:
function checknumbersvalidation(field){ if( isnan(field) ) { field.value = "must number"; field.focus(""); } } function checkinputs(field) { var test = false; do{ if ( field.value === null || field.value.trim() === "" ) { field.value = "input needed"; //set focus field.focus(""); }else if (field.value === "0") { field.value = "can't zero"; field.focus(""); }else { tests = true; } }while (test = false) } function handelcalcbuttonclicked (e) { var passfirsttests = false; var textfields = ["fullname", "hoursworked", "hourlyrate"]; for( var = 0; < textfields.length; ++ ) { var field = document.getelementbyid(textfields[i]); checkinputs(field); } if( **something** ) { var numberfields = ["hoursworked", "hourlyrate"] ( var = 0; < numberfields.length; i++ ) { field = document.getelementbyid(numberfields[i]); checknumbersvalidation(field); } } } document.addeventlistener("domcontentloaded", function() { document.getelementbyid("calcbutton").addeventlistener("click", handelcalcbuttonclicked, false); }); clearly don't know i'm doing. in function handelcalcbuttonclicked i'm not sure how move on the next part (the part saying something). nice!
inside checknumbersvalidation need isnan call on field.value, not field:
if( isnan(field.value) ) if want know if of fields have gone through checkinputs , have passed, need checkinputs return whether or not each field has passed:
function checkinputs(field) { if ( field.value === null || field.value.trim() === "" ) { field.value = "input needed"; //set focus field.focus(""); return false; } else if (field.value === "0") { field.value = "can't zero"; field.focus(""); return false; } return true; } this allow know if fields have passed check:
var passedallchecks = true; for( var = 0; < textfields.length; ++ ) { var field = document.getelementbyid(textfields[i]); passedallchecks = checkinputs(field) && passedallchecks; } if(passedallchecks) { /* number validation stuff */ }
Comments
Post a Comment