2012-12-10 58 views
1

我想使用一個下拉,其中2個值是/否更改是否顯示一個字段。我仍然希望存在的元素不可見。使用選擇更改淡出或淡出另一個字段

我使用Razor和MVC3來渲染頁面。

因此,我曾嘗試以下的代碼:

$(function() { 
    $("DiscountOn").change(function() { 
     if ($("DiscountOn").Value == 0) { 
      $("DiscountPercentage").fadeOut('fast'); 
     } 
     else { 
      $("DiscountPercentage").fadeIn('fast'); 
     } 
    }); 
}); 

DiscountOn是具有0或1值,文本沒有或yes分別下拉。當DiscountOn轉爲0時,我希望它使DiscountPercentage消失,並在DiscountOn轉爲1時重新出現。對於增加值,如果可以在頁面加載時顯示或消失,取決於在下拉菜單中設置哪個選項會很好。

回答

3
$("DiscountOn") 

沒有正確選擇元素。如果您要選擇的元素的ID,那麼你需要做兩種:

document.getElementById("DiscountOn") // Pure JS 

$("#DiscountOn") // jQuery 

你的另一個問題是,你是如何得到的值。你要麼需要做到這一點

.value // Pure JS 

.val() // jQuery 

記住,JS是區分大小寫的!

+0

非常好,非常感謝您的幫助。 –

+0

我的榮幸! :) –

+0

有一個問題,它仍然不起作用,我已經提醒了一下,看看它的價值是什麼,但是警報甚至沒有顯示出來。所有的ID都是正確的。 –

0

的問題是與選

如果DiscountOnDiscountPercentage是ID或該元素。與#前綴,如果他們是一流的,然後用.

$(function() { 
    $("#DiscountOn").change(function() { 
     if ($("#DiscountOn").val() === 0) { 
      $("#DiscountPercentage").fadeOut('fast'); 
     } 
     else { 
      $("#DiscountPercentage").fadeIn('fast'); 
     } 
    }); 
}); 
+0

$(「#DiscountOn」)。Value == 0,rly? – sasjaq

+0

嗯,我沒有注意到他是否也犯了這個錯誤。如果你閱讀我的評論,我只提到了一個問題並解決了這個問題。 –

1
$(function() { 
    $("#DiscountOn").change(function() { 
     if ($(this).val() == '0') { 
      $('#DiscountPercentage').fadeOut('fast'); 
     } 
     else { 
      $('#DiscountPercentage').fadeIn('fast'); 
     } 
    }); 
}); 

而對於增值,如果你可以把它出現或或取決於哪個選項在設置時消失 在頁面加載下拉 這將是優秀的。

理想情況下,這應該在服務器端完成,而不是使用任何JavaScript。您已經知道下拉列表的選定值,因此您可以動態地在DiscountPercentage元素周圍添加一些CSS類來顯示/隱藏它。

相關問題