У нас есть такой код, который работает некоторое время. Это для кнопки, которая отправляет HTML-форму, если соседнее текстовое поле не пусто. Я взял этот фрагмент прямо из нашего кода; Я изменил содержимое полей, но ничего не удалил.
<input
type="image"
name="inputName"
id="inputId"
src="someImage"
alt="altText"
onclick="
javascript:var obj = document.all ? document.all["aTextInputFormFieldId"] :
document.getElementById("aTextInputFormFieldId");
if(obj.value.length == 0)
{
alert('It is 0!');
return false;
};"
style="someStyle" />
(Оригинальный код находится на одной строке, но для ясности добавлены разрывы строк).
Кажется, он отлично работает в Firefox. Но в IE это происходит не так, как я не могу понять: если поле ввода (aTextInputFormFieldId) пустое, оно выдает предупреждение, но затем отправляет форму в любом случае после того, как пользователь нажмет кнопку «ОК» в предупреждении.
Когда я сделал просмотр источника на всей странице и скопировал его локально, он, кажется, работает отлично; он либо отправляет форму, либо выдает предупреждение, а затем отказывается от отправки.
Моя лучшая текущая (но все еще паршивая) теория заключается в том, что одна из включенных библиотек JavaScript делает что-то смешное, что объясняет, почему это не сработало на реальном сайте, но дает сбой, когда я копирую его локально (поскольку я не брал различные библиотеки, которые он импортирует.) Это логично, и я проверю это, также взяв библиотеки, но мне трудно представить, что эти библиотеки могут делать, чтобы все испортить (или почему) .. они обычные служебные библиотеки, такие как jquery, служебные функции и т. д.
Так есть ли у кого-нибудь теория о том, что здесь может происходить?