2016-08-13 50 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