2013-10-24 81 views
0

我很難搞清楚如何解決這個問題。我有一個輸入欄和一個提交按鈕。我想要做的第一件事是當點擊提交按鈕時,將變量的值更改爲輸入字段的值。做功能onclick按鈕

其次我想在點擊提交按鈕時運行一個函數。他的情況:當提交按鈕被點擊時,我想根據輸入字段的值從維基百科檢索一個json文件。

<div class="container"> 
    <div class="row"> 
     <div class="span8"><p>Please enter your searchterm:</p> 
     <input id="input" type="text" value="Denmark"><br> 
      <input type="button" id="submit" value="Search" /> 
     </div> 
     <div class="span4"><div id="result"></div></div> 
    </div> 
</div> 


<script> 
var searchTerm=""; 
var url="http://en.wikipedia.org/w/api.php?action=parse&format=json&page=" + searchTerm+"&redirects&prop=text&callback=?"; 

$('#submit').click(function(){ 
searchTerm='denmark'; 
}); 


$.getJSON(url,function fetchWiki(data){ 
    wikiHTML = data.parse.text["*"]; 
    $wikiDOM = $("<document>"+wikiHTML+"</document>"); 
    $("#result").append($wikiDOM.find('.infobox').html()); 
}); 

我無法弄清楚如何改變值,隨後運行的功能。

請耐心等待,我對JavaScript比較陌生。

回答

1

您需要防止click事件的默認操作:

$('#submit').click(function (e){ //pass the event into the function 
e.preventDefault(); //prevent the submit button from actually submitting 

//update your variables 
searchTerm = $("#input").val(); 
url="http://en.wikipedia.org/w/api.php?action=parse&format=json&page=" + searchTerm+"&redirects&prop=text&callback=?"; 


$.getJSON(url,function fetchWiki(data){ 
    wikiHTML = data.parse.text["*"]; 
    $wikiDOM = $("<document>"+wikiHTML+"</document>"); 
    $("#result").append($wikiDOM.find('.infobox').html()); 
    }); 

}); 

此外,請注意,做搜索的代碼需要去點擊功能,因爲變量需要更新他們點擊「提交」。

+0

您還需要在從輸入中獲取searchTerm後更改url *。否則,它是無用的。 –

+0

哎呀,更新.. –

+0

其實我已經試過這種方法沒有運氣。當我點擊按鈕時什麼都沒有發生,我找不出原因。 –