2013-04-07 46 views
0

這是我第一個使用Javascript(來自Matlab背景)的週末,而且在一個令人驚歎的高效週六之後,我一直堅持這個好幾個小時,非常感謝任何幫助!使用jQuery來檢測一個下拉列表的值並更新另一個

我試圖檢測一個下拉框的值,然後從解析後端更新另一個,一個是頂級行業,另一個是子行業。這似乎是從這裏的其他答案應該很容易,但雖然它檢測到變化,它從來沒有實際更新第二個盒子。數據從Parse正常到達。我在其他部分使用Foundation框架,最新版本的jQuery和Handlebars,如果這可能會有所作爲。

的HTML:

<form class="custom"> 

<div class="large-6 columns"> 



    <label for="IndustryDropDown">Area of interest</label> 
    <select id="IndustryDropDown" class="small"> 
    <option>All</option> 
    <option>Technology</option> 
    <option>Services</option> 
    <option>Financial</option> 
    <option>Consumer goods</option> 
    <option>Materials and mining</option> 
    </select> 

</div> 

<div class="large-6 columns"> 

    <label for="SubIndustryDropDown">Specific interest</label> 
    <select id="SubIndustryDropDown" class="small"> 
    <option>Select Area first</option> 
    </select> 
</div> 

</form> 

的JS:

$("#IndustryDropDown").change(function(){ 

    var SubIndustry = Parse.Object.extend("SubIndustry"); 
    var query = new Parse.Query(SubIndustry); 


    // change this to a case statement once working 

    if ($(this).val() == "Technology"){ 

     var Industries = Parse.Object.extend("Industries"); 
     var industries = new Parse.Query(Industries); 
     query.descending("Name"); 
     query.equalTo("Industry", "Technology") 

     query.find({ 
      success: function(results) { 

      $(results).each(function(i,e) { 
       var q = e.toJSON(); 
       console.log(q.Name) // this prints out the Name entries as expected 
       $('SubIndustryDropDown').append(new Option(q.Name, q.Name)); 
      });//for each 

      },//sucess 
      error: function(error) { 
      console.warn("error finding quote") 
} 
}); 
+0

我不是確定這個「解析」javascript框架是什麼,但它與「解析」的通常意義無關...... – dequis 2013-04-07 20:05:23

+0

道歉我指的是解析[鏈接](https://parse.com/),這本質上一個後端作爲服務,但標籤必須自動完成 – iammarkhammond 2013-04-08 09:43:53

回答

0
$('SubIndustryDropDown').append(new Option(q.Name, q.Name)); 

jQuery的ID選擇需要#,否則你選擇一個元素與該名稱(無HTML元素存在名稱,但它可能與xhtml發生)

因此$('#SubIndustryDropDown')。此外,append()需要一個參數,該參數可以是html字符串,DOM節點或包含該DOM節點的jquery對象。我不知道該選項對象是否適用於jQuery,但如果失敗,請執行類似.append($("<option>").attr("value", q.Name).text(q.Name))(這就是我如何生成選項標記的html,可能有更好的方法)

+0

嗨,非常感謝迴應,缺乏#肯定會成爲一個問題,但令人驚訝的是它仍然沒有做任何事情,我也嘗試了所有提出的方式在[這](http://stackoverflow.com/questions/170986/what-is-the-best-way-to-add-options-to-a-select-from-an-array-with-jquery)線程。如果我把這些文件放在公開的地方,會有幫助嗎? – iammarkhammond 2013-04-08 10:01:25

+0

是的,實際上,如果你試圖獲得一個最小的代碼測試用例,它的行爲不起作用,那麼很可能你會自己發現你做錯了什麼。要麼是這樣,要麼你得到了一個顯示問題的實際最小測試用例,並讓其他人看到它,嘿。 – dequis 2013-04-09 01:24:40

+0

雖然你發佈的代碼是相當小的......但我不知道如何設置這個'Parse'庫,或者它依賴於後端服務器。所以是的,上傳我可以調試的東西,我們會看到。 – dequis 2013-04-09 01:30:44

相關問題