2010-05-28 2 views
0

Эта строка кода работает отлично для FirefoxЧто такое совместимая строка кода JQuery для IE7 и IE8?

$("#<%=txt1.ClientID%>").text() 

но не для IE8 и IE7. Смотрите ниже сценарий, чтобы понять, что я действительно имею в виду: - Сценарий: - страницы .aspx

  1. Загрузка.
  2. Заполнение текстового поля некоторыми данными из базы данных.
  3. Теперь пользователь меняет данные в том же текстовом поле на стороне клиента (средство пока не отправлено). Итак, здесь, в firefox, приведенная выше строка javascript показывает мне, что фактические данные поступают из базы данных, но IE7 & 8 показывает мне измененные данные. Но мне нужны фактические данные.

Так что я нужна совместимый код для IE7 & IE8

Я надеюсь, что я объяснил это хорошо, что мне нужно. Заранее спасибо

ответ

1

Что такое txt1? Это <input>?

Используйте input.value или в jQuery val(), чтобы узнать значение поля формы. text() читает текстовое содержимое внутри элемента, которое для большинства полей формы ничего.

Для <textarea> текстовое содержимое будет исходным содержимым поля, как в исходном HTML-файле, не текущее значение поля. (Эти начальные содержимое соответствуют свойству DOM defaultValue, не value В <input>, это value="..." свойство вместо текстового контента, но он по-прежнему defaultValue в DOM и не value.).

+0

txt1 управляет текстовым полем asp – Jango

+0

Я не понял, что вы здесь говорите. Существует разница между этими двумя строками кода (только IN FIREFOX) $ ("# <% = txt1.ClientID%>"). Attr ("value") и $ ("# <% = txt1.ClientID%>") .text() КОГДА ВЫ ИЗМЕНЯЕТЕ ЗНАЧЕНИЕ ТЕКСТОВОЙ КОРОБКИ НА ТОЛЬКО СТОРОНЕ КЛИЕНТА – Jango

+0

Вы не должны использовать ни одну из этих строк кода. Чтобы прочитать значение поля формы, правильным методом jQuery является 'val()'. 'attr ('val')' вводит в заблуждение (он фактически считывает значение * свойство *, а не 'value =" "* * attribute *), а' text() 'просто неверно: он вернет значение defaultValue 'для многострочного текстового поля и вообще ничего для текстового поля в одной строке, кроме IE, где вы получаете значение' value' вместо 'defaultValue' из-за ошибок. Избегайте всей этой путаницы: просто используйте 'val()'. – bobince

0

Ваш фрагмент кода будет захватывать содержимое текстового поля во время выполнения кода.

Это поведение то же самое по IE7,8 и Firefox.

Убедитесь, что ваш код работает только на document.ready.

+0

@ Matt: код выполняется после того, как документ .готов. Но поведение не одинаково в IE7,8 и Firefox. – Jango

1

В этом фрагменте нет ничего, что было бы несовместимо с любым из IE. Возможно, у вас есть синтаксическая ошибка в другом месте, которая нарушает ваш код? Например, список или хэш, определенный с помощью конечной запятой, является общей ошибкой только для IE, если он появляется где-либо в блоке <script>, он разрушает все это.