我正在開發一個MVC c#項目。我是新來的jQuery和會喜歡它,如果你們能借一些想法,以什麼錯在這裏去..當條件成立時使用JQuery啓用Dropdownlist
我有兩個下拉列表:
@Html.DropDownList("year", new SelectList(SomeModel.SomeHelper.SomeMethod()), "All", new {@class = "dropDown"})
@Html.DropDownList("month", new SelectList(new[]
{
new {ID = "1", Name = "January"},
new {ID = "2", Name = "February"},
}, "ID", "Name"),"All", new {@class = "dropDown", @disabled = "disabled"})
注:大多數月份的目的
刪除年份列表將始終啓用。但是,月份列表僅在從年份列表中選擇一個值時才能啓用。所以我寫了這個jQuery的正常工作:
$(document).ready(function()
{
var yearDropdown = $("#year");
var monthDropdown = $("#month");
yearDropdown.on('change', function (sender, arg) {
var newVal = $(this).val();
monthDropdown.removeAttr('disabled', newVal !== 0);
});
});
不過,現在..當我不想被選擇的年份(我回到「所有」在今年的榜單中選擇),仍處於啓用狀態月份列表。
編輯:年份列表包含像「2010」,「2011」等數值。等等。當年份列表選擇「全部」時,我想禁用月份列表。選擇一年後,我希望啓用月份列表。
因此我寫了這個:
$(document).ready(function() {
var monthDropdown = $("#month");
var yearDropdown = $("#year");
yearDropdown.on('change', function (sender, arg) {
if ($(yearDropdown) == "All") {
$("#monthDropdown").prop("disabled", false);
}
});
});
沒有工作..(這意味着什麼都沒有發生過),我不知道這是做它甚至以正確的方式。截至目前爲止:只有從年份列表中選擇月份列表。沒有更多..
任何指導? :)
UPDATE:
與所有那些誰評論的指導下,我成功地編寫終於研究出一個jQuery:現在
$(document).ready(function() {
var yearDropdown = $("#year");
var monthDropdown = $("#month");
yearDropdown.on('change', function() {
var newVal = $("#year").val();
if (newVal === "") {
monthDropdown.prop('disabled', !this.selectedIndex);
}
else {
monthDropdown.prop('enabled', !this.selectedIndex);
}
});
});
也對我有更好的理解的jQuery :)雖然我標記一個答案作爲答案,評論真的數過!
'全部'是選項文本還是值?如果價值,'0'的目的是什麼?僅供參考,值不是數字,而是一個字符串,removeAttr()jq方法不接受布爾參數,並且jq對象總是在js中真實。這在代碼中會導致很多錯誤。在您的問題中發佈相關的HTML標記會使您的問題在幾秒鐘內得到解決...... –
「所有」是默認值我在每個列表
@Html.DropDownList("year", new SelectList(SomeModel.SomeHelper.SomeMethod()), "All", new {@class = "dropDown"})
我沒有爲它設置的值設置..因爲我還沒有完全確定它是如何工作。但我能夠從控制器中的這個列表中檢索值,當所有選擇我使用小於0來識別它。 另外..你是什麼意思相關的HTML標記? – TsarJquery是客戶端語言。它用於瀏覽器。您已經發布了服務器端代碼,您應該在瀏覽器呈現它時發佈相關的選定元素HTML標記。現在很容易理解什麼是從您的服務器端代碼的HTML呈現,但因爲我不是一個ASP人,這就要求我頭腦猛衝...... :) –