¿Por qué el código jQuery no se llama aquí ... por favor sugiera?
Frecuentes
Visto 60 equipos
1
Debajo de todo mi código,
*Modelo *
A continuación se muestra el código del modelo,
public class MyViewModel
{
public int? Year { get; set; }
public int? Month { get; set; }
public IEnumerable<SelectListItem> Years
{
get
{
return Enumerable.Range(2000, 12).Select(x => new SelectListItem
{
Value = x.ToString(),
Text = x.ToString()
});
}
}
}
Regulador
A continuación se muestra el código del controlador,
//
// GET: /MenuSix/
public ActionResult Index()
{
var model = new MyViewModel();
return View(model);
}
public ActionResult Months(int year)
{
if (year == 2011)
{
return Json(
Enumerable.Range(1, 3).Select(x => new { value = x, text = x }),
JsonRequestBehavior.AllowGet
);
}
return Json(
Enumerable.Range(1, 12).Select(x => new { value = x, text = x }),
JsonRequestBehavior.AllowGet
);
}
Ver
A continuación se muestra el código de vista,
@model DemoWeb.Models.MenuSix.MyViewModel
@using (Html.BeginForm())
{
@Html.DropDownListFor(
x => x.Year,
new SelectList(Model.Years, "Value", "Text"),
"-- select year --"
)
@Html.DropDownListFor(
x => x.Month,
Enumerable.Empty<SelectListItem>(),
"-- select month --"
)
}
@section PageScriptsAndCSS{
<script type="text/javascript">
$('#Year').change(function () {
debugger;
var selectedYear = $(this).val();
if (selectedYear != null && selectedYear != '') {
$.getJSON('@Url.Action("Months")', { year: selectedYear },
function (months) {
var monthsSelect = $('#Month');
monthsSelect.empty();
$.each(months, function (index, month) {
monthsSelect.append($('<option/>', {
value: month.value,
text: month.text
}));
});
});
}
});
</script>
}
Estoy probando el código anterior, pero en el código jquery no llamado aquí, sugiera por qué el evento de cambio desplegable no se llama en jquery.
1 Respuestas
1
Envuelva el código javascript en document.ready para asegurarse de que el control esté disponible al vincular el evento. Parece que este javascript se representa en la cabeza y en ese momento el menú desplegable aún no se ha agregado al DOM
$(document).ready(function()
{ $("#año").///resto del código });
Respondido 01 Jul 12, 08:07
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas asp.net asp.net-mvc-3 jquery or haz tu propia pregunta.