2016-12-26 6 views
-2

Wenn der Benutzer eine Nummer < = 0 eingibt, wird die Warnmeldung angezeigt, die funktioniert. Aber jetzt möchte ich den Benutzer fragen, ob sie eine Zahl> 35000 eingeben. Wenn ja, möchte ich, dass die Warnmeldung erscheint, aber ich möchte einen Prototyp dazu verwenden, weil ich sie praktisch anwenden möchte. Bin ich nahe daran, mit meinem Code richtig zu sein, oder bin ich weit weg? Ich fühle mich, als wäre ich weit weg.Ist es möglich, einen Prototyp dafür in Javascript zu verwenden?

Dank für die Zeit nehmen zu lesen: D

 function isSalaryZeroOrLess() { 
 
     
 
    \t var s = parseInt(document.getElementById("salary").value); 
 
    
 
    \t if(s <= 0) { 
 
    \t \t alert("No money"); 
 
    \t } 
 
    } 
 
    
 
    isSalaryZeroOrLess.prototype.greaterThan = function() { 
 
    \t var userSalary = s/12; 
 
    
 
    \t if(userSalary > 35000) { 
 
    \t \t alert("works!"); 
 
    \t } 
 
    }
<!DOCTYPE html> 
 
    <html lang="en"> 
 
    <head> 
 
    \t <meta charset="utf-8"> 
 
    \t <title>WOMP</title> 
 
    \t <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> 
 
    \t <link rel="stylesheet" href="gameTime.css"> 
 
    </head> \t \t 
 
    <body> 
 
    \t <form class="col-md-4 col-md-offset-4" name="formHandler" id="handle"> 
 
    \t \t <div id="allFields"> 
 
    \t \t \t <div class="moveUsername"> 
 
    \t \t \t \t <h1>(All numbers inputted will be assumed that it's in dollars)</h1> 
 
    \t \t \t \t <label for="usr">What's your annual salary?</label> 
 
    \t \t \t \t <input type="field" class="form-control" id="salary" placeholder="What's your annual salary?" required="required"> \t 
 
    \t \t \t </div> 
 
    
 
    \t \t \t <div class="ageMovement"> 
 
    \t \t \t \t <label for="usr">How much do you spend every month on bills?</label> 
 
    \t \t \t \t <input type="field" class="form-control" id="monthlyBills" name="ageChecker" placeholder="How much do you spend every month on bills?" required="required"> 
 
    \t \t \t </div> 
 
    
 
    \t \t \t <div class="emailMovement"> 
 
    \t \t \t \t <label for="usr">How much do you spend when going out?</label> 
 
    \t \t \t \t <input type="field" class="form-control" id="goingOut" name="emailChecker" placeholder="How much do you spend when going out?" required="required"> 
 
    \t \t \t </div> 
 
    \t \t </div> 
 
    \t \t <button type="submit" class="btn btn-default" onclick="isSalaryZeroOrLess()">Submit</button> 
 
    \t </form> 
 
    \t 
 
    </body> 
 
    </html> 
 

 

+2

Was ist das Problem? Was läuft schief? Werden Fehler gemeldet? – Pointy

+1

Sie haben ein Problem in Ihnen html ... onclick = "isSalaryZeroOrLess(); greaterThan()" – Alon

+0

@Alon Ich entfernte GreaterThan(), aber es funktioniert immer noch nicht. – chompy

Antwort

0

Prototypen arbeiten auf Objekte, die nicht funktioniert. Objekte sind wie Klassen in oop, Sie können ihnen Felder und Methoden geben. Sie benötigen einen Finance Objektkonstruktor wie so,

function Finance(salary, fixedExpense, variableExpense) 
{ 
     this.salary = salary; 
     this.fixedExpense = fixedExpense; 
     this.variableExpense = variableExpense; 
     this.isSalaryZeroOrLess = function() { ...} 
} 

var peter = new Finance(60000, 3000, 1234); 

erstellen oder, wenn Sie Ihre Objektkonstruktor wie oben erstellt haben:

Finance.Prototype.isSalaryGreaterThan = function(greaterThanValue) {...} 
+0

Dies ist golden, kristallklar. Vielen Dank, ProgrammiererAdept! :) – chompy

+0

Soll nicht alles in JS ein Objekt sein? Sogar funktioniert? –

Verwandte Themen