2016-04-08 5 views
2

を実行するので、私はHTMLとJSを使用して株式市場シミュレータに取り組んでいます。現在の株価を取得するapi hereがあります。ここに私のHTMLですhttp://pastebin.com/ymcGKtin残念なのは、SOのための書式設定にはあまり適していません。しかし、機能を追加するには、投稿されたフォームstockを配列stocksにプッシュしようとしています。しかし、私は提出されたフォームstockを取得し、それを配列にプッシュする方法を見つけようとすると問題に遭遇しました。私はこれを行う方法についていくつかの指針を得ることができれば、それは賛美されるだろう。具体的には、配列Stocksにプッシュされた属性stockを取得するのに役立つと思います。アイデア? jQueryを使ってHTMLの入力を使用して関数

var Market = {}; 
 
var Stocks = []; 
 

 

 
Market.getQuote = function(symbol, fCallback){ 
 
    this.symbol = symbol; 
 
    this.fCallback = fCallback; 
 
    this.DATA_SRC = "http://dev.markitondemand.com/Api/v2/Quote/jsonp"; 
 
    this.makeRequest(); 
 
} 
 
Market.getQuote.handleSuccess = function(jsonResult){ 
 
    this.fCallback(jsonResult); 
 
} 
 
Market.getQuote.handleError = function(jsonResult){ 
 
    console.error(jsonResult); 
 
} 
 
Market.makeRequest = function() { 
 
    //Abort any open requests 
 
    if (this.xhr) { this.xhr.abort(); } 
 
    //Start a new request 
 
    this.xhr = $.ajax({ 
 
     data: { symbol: this.symbol }, 
 
     url: this.DATA_SRC, 
 
     dataType: "jsonp", 
 
     success: this.handleSuccess, 
 
     error: this.handleError, 
 
     context: this 
 
    }); 
 
}; 
 
function addStock(){ 
 
    alert("derp"); 
 
    // Stocks.push(ele.getAttribute) 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<!DOCTYPE html> 
 

 
<html lang="en" xmlns="http://www.w3.org/1999/xhtml"> 
 
<head> 
 
    <meta charset="utf-8" /> 
 
    <title>Stock Market Game PRE ALPHA BETA</title> 
 
</head> 
 
<body> 
 
    <form onsubmit = "addStock()"> 
 
     <input type="text" name="stock" value =""><br><br> 
 
     <input type="submit" value="Get Price"> 
 
    </form> 
 
     
 
</body> 
 
</html>

+1

'document.getElementByを使用して入力ボックスを取得...'、それは値(.VALUE)のget –

+0

注:スクリプト要素、DOCTYPEの前に、あなたを作りますページ全体が無効です。この場合、 '

1

form element collectionメソッドを使用するaddStock()機能を変更しました。

function addStock(){ 
    var xForm = document.forms[0]; 
    var xField = xForm.elements[0]; 
    alert("Stock: "+xField.value); 
    Stocks.push(xField.value); 
    console.log(Stocks); 

} 

var Market = {}; 
 
var Stocks = []; 
 

 

 
Market.getQuote = function(symbol, fCallback) { 
 
    this.symbol = symbol; 
 
    this.fCallback = fCallback; 
 
    this.DATA_SRC = "http://dev.markitondemand.com/Api/v2/Quote/jsonp"; 
 
    this.makeRequest(); 
 
} 
 
Market.getQuote.handleSuccess = function(jsonResult) { 
 
    this.fCallback(jsonResult); 
 
} 
 
Market.getQuote.handleError = function(jsonResult) { 
 
    console.error(jsonResult); 
 
} 
 
Market.makeRequest = function() { 
 
    //Abort any open requests 
 
    if (this.xhr) { 
 
    this.xhr.abort(); 
 
    } 
 
    //Start a new request 
 
    this.xhr = $.ajax({ 
 
    data: { 
 
     symbol: this.symbol 
 
    }, 
 
    url: this.DATA_SRC, 
 
    dataType: "jsonp", 
 
    success: this.handleSuccess, 
 
    error: this.handleError, 
 
    context: this 
 
    }); 
 
}; 
 

 
function addStock() { 
 
    var xForm = document.forms[0]; 
 
    var xField = xForm.elements[0]; 
 
    alert("Stock: " + xField.value); 
 
    Stocks.push(xField.value); 
 
    console.log(Stocks); 
 

 
}
<!DOCTYPE html> 
 

 
<html> 
 

 
<head> 
 
    <meta charset="utf-8" /> 
 
    <title>Stock Market Game PRE ALPHA BETA</title> 
 
</head> 
 

 
<body> 
 
    <form onsubmit="addStock()"> 
 
    <input type="text" name="stock" value=""> 
 
    <br> 
 
    <br> 
 
    <input type="submit" value="Get Price"> 
 
    </form> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
    <script src="http://gh-canon.github.io/stack-snippet-console/console.min.js"></script> 
 
</body> 
 

 
</html>

+0

ありがとうございました! – Christopher

+0

大歓迎です。 – zer00ne

関連する問題