Я пытаюсь замаскировать текстовое поле для телефонных номеров при изменении выпадающего списка. И текстовое поле, и раскрывающийся список находятся внутри частичного представления, которое динамически загружается. Однако событие on.change не запускается вообще. Пожалуйста помоги!Событие jQuery .on 'change' не запускается для выпадающего списка внутри частичного представления
JQuery
$.ajax({
url: '/Brd/CreatePointofContact'
}).success(function (partialView) {
$('#newPocs').append(partialView);
}); //this is what loads the partial view
//doesn't work
$(document).on("change", "#NumberTypeId", function() {
alert("Hi!");
//do masking here
});
//this doesn't work either
$("#NumberTypeId").on('change', function (e) {
alert("Hi!");
var mask = "(999)-999-9999";
var valueSelected = this.value;
if (valueSelected == 1) {
$('#PhoneNumber').mask(mask);
} else {
$('#PhoneNumber').unmask(mask);
}
});
Общий вид
<div id="newPocs">
@for (int i = 0; i < @Model.NewPocs.Count(); i++)
{
@Html.EditorFor(model => @Model.NewPocs[i])
}
</div>
Частичный вид (динамически загружен)
<div class="col-md-3">
@Html.DropDownListFor(m => m.NumberTypeId, @Model.NumberType, "-- Select --", new { @class = "form-control" })
</div>
<div class="col-md-2">
@Html.TextBoxFor(m => m.PhoneNumber, new { @placeholder = "Phone Number", @class = "form-control" })
</div>
Пожалуйста, используйте только фактический вывод HTML когда создавая фрагмент кода. – Terry
Я думал, что было бы полезно сообщить людям, как я загружаю свой частичный вид, чтобы быть в состоянии помочь лучше! – solar
То есть фрагмент кода не распознает разметку Razor. Но ваш код Razor по-прежнему полезен для демонстрации вашей проблемы. – Jasen