Новое для JQuery, и у меня есть следующая функция. Я пытаюсь изменить его, чтобы он делал 2 вещи: не запускать функцию, когда я нажимаю другие переключатели (я думал, что «#UpdateType input [type =« radio »]» сделает это), а также запустит функцию при загрузке как на клике. #UpdateType - это идентификатор для переключателей, с которыми я пользуюсь. У кого-нибудь есть предложения?Функция JQuery - запускается при щелчке и на загрузке страницы для определенного переключателя
$(document).ready(updateTypeFunc);
$(document).ready(function() {
$('#UpdateTypeRB input[type="radio"]').click(updateTypeFunc);
});
function updateTypeFunc()
{
if ($(this).attr('id') == 'UpdateType' && $(this).val() == 'Current') {
$('.current-employee').show();
}
else {
$('.current-employee').hide();
}
}
Как сейчас, он срабатывает, когда я нажимаю любую кнопку переключателя независимо от ID.
Edit: HTML
<div class="col-md-10" id="UpdateTypeRB">
<label class="radio-inline">
<input class="btn btn-primary" data-val="true" data-val-required="Please select whether the employee is new or current." id="UpdateType" name="UpdateType" type="radio" value="New"> New
</label>
<br>
<label class="radio-inline">
<input checked="checked" class="btn btn-secondary" id="UpdateType" name="UpdateType" type="radio" value="Current"> Current
</label>
<br>
<span class="field-validation-valid text-danger" data-valmsg-for="UpdateType" data-valmsg-replace="true"></span>
</div>
Razor:
<div class="form-group">
@Html.LabelFor(m => m.UpdateType, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
<label class="radio-inline">
@Html.RadioButtonFor(m => m.UpdateType, "New", new { @class = "btn btn-primary" }) New
</label>
<br />
<label class="radio-inline">
@Html.RadioButtonFor(m => m.UpdateType, "Current", new { @class = "btn btn-secondary" }) Current
</label>
<br />
@Html.ValidationMessageFor(m => m.UpdateType, "", new { @class = "text-danger" })
</div>
</div>
Edit 2: Обновление JQuery благодаря @KristianBarrett. Работает иначе, чем $ (документ). Я пытался реализовать.
То, что я в целом пытаюсь достичь, скрывает/показывает определенные требуемые элементы на странице, основанные на этом переключателе. Он изначально загружается с ни одним проверенным, поэтому пользователь вынужден выбрать его. Затем я использую Foolproof для выполнения RequiredIf на основе этих флажков («Текущий») и хочу показать их пользователю после того, как «Текущий» отмечен JQuery. Проблема заключается в том, что при проверке выдает ErrorMessage после отправки, флажок Current помечается все же, но поля скрыты, пока я не вручную его вручную не нажму. Поля скрыты по умолчанию.
Как выглядит ваш HTML-код? '$ ('# UpdateType input [type =" radio "]')' говорит запустить этот обработчик для любого радио внутри контейнера с идентификатором 'UpdateType' – tymeJV
Отредактировано. Так будет ли это означать, что синтаксис Razor вызывает ошибку из-за двух ID #UpdateType? – justiceorjustus
Ну да - у вас не может быть два одинаковых идентификатора - ** ID должен быть уникальным ** – tymeJV