I'm currently working on and debugging a script and I keep coming across this error - Here's my JavaScript - <!--Begin function answer() { var emptyPocketsOne = eval(document.calc.regex.value) parseemptyPocketsOne = emptyPocketsOne.match(/Empty Pockets: (\d+)/) var usedPocketsOne = eval(document.calc.regex.value) parsusedPocketsOne = usedPocketsOne.match(/Used Pockets: (\d+)/) var labSpaceOne = eval(document.calc.regex.value) parselabSpaceOne = labSpaceOne.match(/Drug Lab Size: (\d+)/) var junkiesOne = eval(document.calc.regex.value) parsejunkiesOne = junkiesOne.match(/Working Junkies: (\d+)/) var JunkiesTwo = eval(document.calc.regex.value) parseJunkiesTwo = JunkiesTwo.match(/Training Junkies: (\d+)/) var emptyPocketsTwo = eval(document.calc.regex.value) parseemptyPocketsTwo = emptyPocketsTwo.match(/Empty Pockets: (\d+)/) var usedPocketsTwo = eval(document.calc.regex.value) parsusedPocketsTwo = usedPocketsTwo.match(/Used Pockets: (\d+)/) var labSpaceTwo = eval(document.calc.regex.value) parseelabSpaceTwo = labSpaceTwo.match(/Drug Lab Size: (\d+)/) var junkiesTwo = eval(document.calc.regex.value) parsejunkiesTwo = junkiesTwo.match(/Working Junkies: (\d+)/) var JunkiesTwo = eval(document.calc.regex.value) parseJunkiesTwo = JunkiesTwo.match(/Training Junkies: (\d+)/) var totalJunkies = (junkiesOne[1] + junkiesTwo[1]) var resultOne = 0 while (usedPocketsOne[1] > totalJunkies - labSpaceOne[1] * 17) { resultOne = resultOne + 1 usedPocketsOne[1] = usedPocketsOne[1] - totalJunkies + labSpaceOne[1] * 17 totalJunkies = totalJunkies + 1 } var resultTwo = 0 while (usedPocketsTwo[1] > totalJunkies - labSpaceTwo[1] * 17) { resultTwo = resultTwo + 1 usedPocketsTwo[1] = usedPocketsTwo[1] - totalJunkies + labSpaceTwo[1] * 17 } var visitsOne = eval(document.calc.regex.value) parsevisitsOne = visitsOne.match(/Dealer Visits Remaining: (\d)/) if (visitsOne[1] == 0) { resultOne = resultOne - 2 usedPocketsOne[1] = usedPocketsOne[1] + 1 } var visitsTwo = eval(document.calc.regex.value) parsevisitsTwo = visitsTwo.match(/Dealer Visits Remaining: (\d)/) if (visitsTwo[1] == 0) { resultTwo = resultTwo - 2 usedPocketsTwo[1] = usedPocketsTwo[1] + 1 } document.getElementById('result').innerHTML ="<b>You can spend " + resultOne + " ( " + resultTwo + " ) " + " tokens" + "," + " You need to purchase " + (emptyPocketsOne[1] - usedPocketsOne[1]) + " ( " + (emptyPocketsTwo[1] - usedPocketsTwo[1]) + " ) " + " drugs" + ".</b>" } // End--> PHP: This is the data that i'm inputting into my HTML form - Empire Value: $3,781,581 Rank: 81 Money: $2,556,932 Tokens: 90 Working Junkies: 500 Training Junkies: 0 Sewing Machines: 0 Gun Presses: 0 Coat: Pakistani Made Travel Turban Guns: 95 Empty Pockets: 6,025 Vests: 72,140 Stamina: 200% Thugs: 0 Used Pockets: 41,975 Drug Lab Size: 0 Sq. Ft. Current Station: Rit's House Drug Lab Set: Crystal Meth Dealer Visits Remaining: 0 Text Books: 235 Code (markup): Anyone know what could be causing the error??
I always put a ; at the end of every javascript command. Once upon a time you didn't actually need to but I'd start there. Is that a firebug screen shot? Are you using Firefox to debug?
I fixed all of that and now it's parsing user input BUT on further testing because the final answer was WAAAAY out, I found this - Does anyone know why it's giving me the answer twice seperated by a comma?? function answer() { var emptyPocketsOne = document.calc.regex.value.match(/Empty Pockets: (\d*)/); alert(emptyPocketsOne); } Code (markup):
String.match returns an array containing the match plus all parenthesised matches. http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Objects:String:match