Jquery Apache - проблема IE - PullRequest
       2

Jquery Apache - проблема IE

1 голос
/ 21 апреля 2010

На моей странице есть тег кнопки со значением.

<button class='btn' value='value'>show value</button>

У меня есть этот код jquery:

    $('.btn').click(function() {
    var w = 'value = '+$(this).val()+' / text = '+$(this).html();
    alert(w);
});

В FF нет проблем, результат в порядке (отображение: значение = значение / текст = показать значение).
Проблема возникает с IE8, который отображает результаты, отличные от моего сервера тестирования и производственного сервера.Сервер тестирования - это мой локальный компьютер со стандартной установкой XAMPP.Productionserver - это сервер на основе linux с apache, php и mysql.

Результат с сервера тестирования в порядке (отображается как FF), результат с рабочего сервера не хороший (displaying: value = show value/ текст: показать значение).

Кто-нибудь идея, если это Apache, который вызывает ошибку?Я знаю, что есть некоторые проблемы с использованием val (), потому что IE рассматривает его как атрибут, а не значение.

Проблема заключается в том, что jQuery меняется с val () на attr ('value')достаточно много работы (эта реализация уже есть на многих страницах), и я думаю, что было бы намного проще изменить что-либо на веб-сервере.

1 Ответ

0 голосов
/ 28 апреля 2010

Это известная клиентская проблема с IE, я не могу адекватно объяснить различия между серверами, иными словами, убедиться, что вы тестируете с теми же браузерами и версиями.

Из W3C:

Важно: Если вы используете элемент кнопки в форме HTML, разные браузеры будут отправлять разные значения. Internet Explorer отправит текст между тегами <button> и </button>, в то время как другие браузеры отправят содержимое атрибута value. Используйте элемент ввода для создания кнопок в форме HTML.

Самый простой способ получить согласованное поведение (кроме .attr('value'), который я настоятельно рекомендую) из этого - это заменить вашу кнопку на:

<input type="submit" class='btn' value='value' />

К сожалению, это не дает вам значения дисплея, однако, если бы у вас была кнопка прокси, вы могли бы получить тот же эффект, что и кнопка, она грязная, но заставляет работать IE:

<input type="button" class='btnPoxy' value='show value' />
<input type="submit" class='btn' value='value' style='display: none;' />

jQuery для этого:

$(".btnProxy").click(function() {
  $(this).next(".btn").click();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...