#javascript #jquery #html #asp.net-mvc #razor
#javascript #jquery #HTML #asp.net-mvc #razor
Вопрос:
У меня есть поле DropDownListFor, в котором вы выберете название страны:
<div class="form-group">
@Html.LabelFor(model => model.CountryCode, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownListFor(model => model.CountryCode, null, new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.CountryCode, "", new { @class = "label label-danger" })
</div>
</div>
в представлении будет отображаться поле губернаторства, если пользователь выберет Египет — НАПРИМЕР, код страны —
Итак, мой Script.js:
$("input[name='Address.CountryCode']").change(function () {
if ($(this).val() == "true") {
$("#EgyptianCitizen").slideDown();
}
else {
$("#EgyptianCitizen").slideUp();
}
});
И поле HTML для губернаторства:
<div class="form-group" id="EgyptianCitizen" style='@((Model != null amp;amp; Model.CountryCode=="EG") ? "display: block;" : "display: none;")'>
@Html.Label("GovernorateID", "Governorate", htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownListFor(model => model.GovernorateID, null, new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.GovernorateID, "", new { @class = "label label-danger" })
</div>
</div>
Но все еще не работает…
Комментарии:
1. У вас нет элемента с
name="Address.CountryCode"
— у вашего первого выпадающего списка естьname="CountryCode"
— и вы можете просто использовать('#CountryCode').change(function() {... }
(но вы действительно отображаете опцию country с помощью avalue=true
?)2. Адрес. Код страны о модели.item
3. значение должно быть value=»EG», верно?
4. Извините, не понимаю вашего последнего комментария — это an
EditorTemplate
? И да, если у вас есть<option value="EG">Egypt</option>
, тогда это должно бытьif ($(this).val() == "EG") {
5. CounrtyCode получает значение из базы данных, и оно будет выглядеть так, как вы написали в представлении html… но не работает
Ответ №1:
Просто проверьте код страны в html браузера… и измените ввод на Select, а значение true на выбранное значение
$("Select[name='CurrentAddress.CountryCode']").change(function () {
if ($(this).val() == "EG") {
$("#EgyptianCitizen").slideDown();
}
else {
$("#EgyptianCitizen").slideUp();
}
});