2016-08-13 52 views
0

我有下拉列表,當進行選擇時調用javascript函數。但是,當完成後,該函數表示所選物品未定義。的HTML是:獲取列表中的未定義

 <div class="main">Color Options:&nbsp; 
    <select name="color_type" id="colorTypesList" style="width:170px" onchange="javascript:return ChangeColorType(this)" 
     class="form-control"> 
    <option value="0" selected="selected">Standard Vinyl</option> 
    <option value="1">Speciality Vinyl</option> 
    <option value="2">Metallic Vinyl</option> 
    <option value="3">Ultra Metallic Vinyl</option> 
    </select> 
    </div> 
    <div id="picked"> </div> 

的JavaScript是

function ChangeColorType(item) { 
     var id = item.options[item.selectedIndex].value;   
     $("#picked").text("picked "+id); 
    } 

我說在這裏:https://jsfiddle.net/bgtLa29d/,但它是不工作的。我可能沒有合適的內容,但我不知道該怎麼做。但是在我的計算機上,該函數被訪問,但拾取的值始終未定義。

請問有人看看嗎?

+0

它對我有用。 –

回答

0

在你的小提琴中有一個與範圍有關的問題。默認情況下,jsfiddle用代碼處理函數包裝代碼,所以函數變爲私有

//<![CDATA[ 
window.onload=function(){ 
function ChangeColorType(item) { 
     var id = item.options[item.selectedIndex].value;   
     $("#picked").text("picked "+id); 
    } 
}//]]> 

你應該選擇的JavaScript面板上的No wrap - in <body>No wrap - in <head>選項,您的代碼將工作!

+0

我對小提琴進行了改變,現在它正在工作,但是相同的代碼在本地失敗。是否有一個jquery包含需要我可能會失蹤?我包括jquery-2.2.3。 – user3052443

+0

我得到它的工作。代碼正在使用ajax進行處理,而javascript函數位於ajax文件中。我將它移動到主文件,現在它正在工作。我感謝快速的幫助,因爲它讓我發現問題。 – user3052443