В настоящее время я создаю сайт с использованием ASP.Net MVC 1 и используя файл javascript this, чтобы заменить переключатели по умолчанию на изображения. Я использую переключатели для переключения между двумя формами с помощью jQuery .toggle.IE7 не вызывает javascript onclick
Это прекрасно работает в Firefox, Chrome, Safari и IE8, но вообще не работает в IE7. Однако, если я проверяю код с помощью инструментов разработчика IE и добавляю пространство в метод onclick во время выполнения, он работает.
Я понятия не имею, почему это так, я пробовал различные комбинации jQuery, обычный javascript, используя return false; и многие изменения в этом бесполезны.
Если кто-то может пролить свет, это было бы очень признательно. Соответствующий код ниже.
Javascript:
var inputs = document.getElementsByTagName("input"), span = Array(), textnode, option, active;
for (a = 0; a < inputs.length; a++) {
if (inputs[a].type == "radio" && inputs[a].className == "styled") {
span[a] = document.createElement("span");
span[a].className = inputs[a].type;
span[a].setAttribute("onclick", inputs[a].getAttributeNode("onclick").nodeValue);
if (inputs[a].checked == true) {
position = "0 -" + (radioHeight * 2) + "px";
span[a].style.backgroundPosition = position;
}
inputs[a].parentNode.insertBefore(span[a], inputs[a]);
inputs[a].onchange = Custom.clear;
if (!inputs[a].getAttribute("disabled")) {
span[a].onmousedown = Custom.pushed;
span[a].onmouseup = Custom.check;
} else {
span[a].className = span[a].className += " disabled";
}
}
}
Код:
<%=Html.RadioButton("rbCustomerSelect", true,Model.IsNewCustomer.GetValueOrDefault(false),new { id="NewCustomerRadioButton", @class="styled", onclick="ShowNewCustomerForm(true);" })%>
Который визуализируется как:
<span class="radio" style="background-position: 0px -50px;" onclick="ShowNewCustomerForm(true);"/>
Есть ли ошибка JavaScript, брошенная, когда вы щелкаете по радио перед добавлением пробела? Возможно, во время интерпретации? Следующий очевидный вопрос: почему бы просто не вернуть серверные интервалы вместо входных данных? –
Ошибок javascript на всех. По крайней мере, никто не поймал. – Steve