jQuery下拉隐藏显示div基于值

Gae*_*lle 10 jquery drop-down-menu

这是一个经典问题,但无法找到最佳方法.我有一个id为project_billing_code_id的下拉列表和3个值(1,2,3).

如果选择值= 1,则显示id为1且仅为此的div.div二和三必须隐藏.我还希望在加载视图时实现这一点,而不仅仅是在更改时.

$(document).ready(function() {
  $("#hourly").hide();
  $("#per_diem").hide();
  $("#fixed").hide();
$("#project_billing_code_id").change(function() {
  if ($("#project_billing_code_id").val() == '1') {
   $("#hourly").show();
   }
  else if ($("#project_billing_code_id").val() == '2') {
   $("#per_diem").show();
   } 
  else if ($("#project_billing_code_id").val() == '3') {
   $("#fixed").show();
   }
  else { 
       $("#hourly").hide();
       $("#per_diem").hide();
       $("#fixed").hide();
       }
  });
});
Run Code Online (Sandbox Code Playgroud)

ira*_*ama 17

你很亲密 您可能需要对行为进行一些小的调整,以确保所有div都隐藏,并且页面加载时显示正确的div.

在这里玩一下代码:http://jsfiddle.net/irama/ZFzrA/2/

或者在这里获取更新的JS代码:

hideAllDivs = function () {
    $("#hourly, #per_diem, #fixed").hide();
};

handleNewSelection = function () {

    hideAllDivs();

    switch ($(this).val()) {
        case '1':
            $("#hourly").show();
        break;
        case '2':
            $("#per_diem").show();
        break;
        case '3':
            $("#fixed").show();
        break;
    }
};

$(document).ready(function() {

    $("#project_billing_code_id").change(handleNewSelection);

    // Run the event handler once now to ensure everything is as it should be
    handleNewSelection.apply($("#project_billing_code_id"));

});
Run Code Online (Sandbox Code Playgroud)

让我们知道你怎么走!