При использовании предварительного просмотра MVC 4 Вы могли бы испытывать это, потому что Вы используете HandleErrorAttribute. Поведение изменилось в 5 так, чтобы оно не обрабатывало исключения, если Вы выключаете пользовательские ошибки.
У меня были аналогичные проблемы с включением
в Internet Explorer с помощью jQuery. Следующий код отлично работал в FireFox.
$('myCheckBox').removeAttr('disabled');
Однако это не работало должным образом в IE.
отображается как
с
и
. Когда флажок отключен, теги span и input украшаются атрибутом disabled. Чтобы получить ожидаемое поведение, я использовал следующий код:
$('myCheckBox').removeAttr('disabled');
$('myCheckBox').closest('span').removeAttr('disabled');
Здесь есть множество избыточных селекторов, которые будут выполнять эту функцию очень неэффективно. Во-первых, выполнение запросов для селекторов выполняется очень медленно по сравнению с остальной частью кода, поэтому кешируйте результат своего селектора и работайте над этим. Кроме того, вы должны объявить i
с оператором var
, чтобы сделать его локальным для вашей функции. И там' s нет необходимости, чтобы jQuery получал элемент по его идентификатору или этот глубоко сбивающий с толку материал, чтобы получить и установить его отключенный статус, что можно сделать гораздо проще с помощью логического свойства DOM disabled
. Все это говорит о том, что я действительно не знаю, почему ваш код не работает, но сделать его читабельным и простым определенно поможет.
function checkChild(id) {
var input, checkBox, parts, inputs = $("input[id*=hdnParentMenuItemID]");
for (var i = 0, len = inputs.length; i < len; i++) {
input = inputs[i];
parts = input.value.split(':');
if (parts[0] == id) {
checkBox = document.getElementById( parts[1] );
checkBox.disabled = !checkBox.disabled;
}
}
}
Вам нужен оператор if, подобный этому
if ($("#" + childID + ":disabled").length) // is childID disabled?
$("#" + childID).removeAttr("disabled"); // enable it
else
$("#" + childID).attr('disabled', 'disabled'); // disable it
Это должно по умолчанию. work
$('#' + childID)[0].disabled = false;