brooke_theperson Posted April 11, 2015 Share Posted April 11, 2015 (edited) Alright, so I am making a program that when a button that says "yo" for example, will display a prompt when click. If the answer to the prompt is a verb, then the "yo" form of that verb is displayed. So far I have a button, that when clicked has a prompt. When I enter a word in the button I can't make it display the "yo" form of the verb. Please help: Here is my javascript: function verb(verb, yo) { this.verb = verb; this.yo = yo;}//*All verbsvar estar = new verb("estar", "estoy");//*All arraysvar verbs = [estar];//*Verb translation present_yofunction presentYo(){ var verb = verbs; var answer = prompt("Enter a verb: ").toLowerCase(); if (answer == verb){ document.getElementById("translation").innerHTML = "verbs.yo"; } else{ document.getElementById("translation").innerHTML = "I do not know the translation."; } } When I enter a word, all that shows up is "I do not know the translation." Please help. Thanks. Edited April 11, 2015 by brooke_theperson Link to comment Share on other sites More sharing options...
davej Posted April 11, 2015 Share Posted April 11, 2015 Most of your programs seem to begin with a constructor. I think that is probably a bad idea in most cases. Here is what I think of when I consider your description... <!DOCTYPE html><html lang="en"><head><meta charset="utf-8"/><title>title</title><style>div {width:300px;border:1px solid #eee;</style><script>window.onerror = function(a, b, c, d){alert('Javascript Error:n'+a+'nURL: '+b+'nLine: '+c+' Column: '+d);return true;}</script><script>'use strict';var vlist = { estar:'estoy', edog:'etoydog', ecat:'ecattoy' };function presentYo(){ var answer = prompt("Enter a verb: ").toLowerCase(); if (vlist[answer] != undefined){ document.getElementById("translation").innerHTML = answer + ' implies ' + vlist[answer]; }else{ document.getElementById("translation").innerHTML = "I do not know the translation."; }}window.onload = function(){ document.getElementById('btn1').onclick = presentYo;}</script></head><body><h1>Translation</h1><input type="button" id="btn1" value="Enter"/><div id="translation"></div></body></html> Link to comment Share on other sites More sharing options...
brooke_theperson Posted April 11, 2015 Author Share Posted April 11, 2015 Thank for the advice, but it there a function that could possibly work with my code? Link to comment Share on other sites More sharing options...
davej Posted April 11, 2015 Share Posted April 11, 2015 <!DOCTYPE html><html lang="en"><head><meta charset="utf-8"/><title>title</title><style>div {width:300px;border:1px solid #eee;</style><script>window.onerror = function(a, b, c, d){alert('Javascript Error:n'+a+'nURL: '+b+'nLine: '+c+' Column: '+d);return true;}</script><script>'use strict';function Verb(verb, yo) { this.verb = verb; this.yo = yo;}//*All verbsvar etar = new Verb("etar", "etoy");var ecar = new Verb("ecar", "ecoy");var ebar = new Verb("ebar", "eboy");var verbs = [etar,ecar,ebar];function presentYo(){var answer = prompt("Enter a verb: ").trim().toLowerCase();var found = false;var i,j;for(i=0 ; i<verbs.length && !found ; i++){ if (verbs[i].verb === answer){ found = true; j = i; }} if (found === true){ document.getElementById("translation").innerHTML = answer + ' implies ' + verbs[j].yo; }else{ document.getElementById("translation").innerHTML = "I do not know the translation."; }}window.onload = function(){ document.getElementById('btn1').onclick = presentYo;}</script></head><body><h1>Translation</h1><input type="button" id="btn1" value="Enter"/><div id="translation"></div></body></html> ...but again something without the constructor seems simpler... <script>'use strict';//*All verbsvar verbs = {};verbs.etar = "etoy";verbs.ecar = "ecoy";verbs.ebar = "eboy";function presentYo(){ var answer = prompt("Enter a verb: ").trim().toLowerCase(); var yo; for(var e in verbs){ if (e === answer){ yo = verbs[e]; } } if (yo != undefined){ document.getElementById("translation").innerHTML = answer +' implies '+ yo; }else{ document.getElementById("translation").innerHTML = "I do not know the translation."; }}window.onload = function(){ document.getElementById('btn1').onclick = presentYo;}</script> 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now