2012-03-27 109 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