2012-03-27 111 views
0

jQuery的变化功能在我的应用程序不能正常工作,并在jfFiddle工作
应用程序代码
jQuery的chenge功能不工作的下拉菜单下拉


<select id="title" name="title"><option value="">-select-</option> 
    <option value="Mr">Mr.</option> 
    <option value="Mrs">Mrs.</option> 
    <option value="Miss">Miss.</option> 
    <option value="Other">Other</option> 
    </select> 



脚本

<script type="text/javascript"> 

$(document).ready(function() { 

    $("#title").change(function() { 
     var value = $("#title").val(); 
     alert(value); 
    }); 
}); 


为什么?
有什么我在做错???

+2

你有什么错误吗?你确定你的小提琴中的HTML与输出中的浏览器中的HTML相匹配吗? – ManseUK 2012-03-27 09:22:59

+2

请添加生成的标记,而不是您的asp.net代码。 – m90 2012-03-27 09:23:28

+0

是的,我相信我在小提琴上使用的标记只是html生成的复制粘贴。 – RollerCosta 2012-03-27 09:24:48

回答

1

尝试指定一个类为您的下拉列表:

@Html.DropDownListFor(
    model => model.title, 
    new[] { 
     new SelectListItem { Text = "Mr", Value = "Mr" }, 
     new SelectListItem { Text = "Mrs", Value = "Mrs" }, 
     new SelectListItem { Text = "Miss", Value = "Miss" }, 
     new SelectListItem { Text = "Other", Value = "Other" } 
    }, 
    "-select-", 
    new { @class = "myddl" } 
) 

,然后执行一个类选择,而不是id选择:

$(document).ready(function() { 
    $('.myddl').change(function() { 
     // use $(this) to get the currently changed dropdown list here 
     // instead of performing yet another selector 
     var value = $(this).val(); 
     alert(value); 
    }); 
}); 

我怀疑你有相同的id多个下拉列表(在<table>或其他东西),这是无效的HTML。

+0

它的工作原理,但问题仍然存在,即为什么jQuery选择器不选择元素的ID(正如我可以看到在DOM只有一个元素与ID“标题”)? – RollerCosta 2012-03-27 09:31:27

+1

@djCool,如果你真的有一个单一的DOM元素与id =“title”',jQuery中的id选择器不起作用,我会非常惊讶。这对于我认为的jQuery项目来说确实是灾难性的。你是如何验证你有一个id =“title”的DOM元素的?你在使用AJAX吗?您是否将元素动态添加到您的页面?必须有 – 2012-03-27 09:32:46

+0

。再看一遍 – 2012-03-27 09:33:23