JQuery-проблема с использованием val () в IE6 - PullRequest
1 голос
/ 05 июня 2009

Я пытаюсь получить значение текстовой области для обновления с помощью jquery, как показано в следующем коде:

<button type="button" onclick="setLine();">Set</button>
<button type="button" onclick="showLine();">fire!</button><p></p>
    <textarea id="hello">

    </textarea>
    <script type="text/javascript">
            $('#hello').val("hi there");
        </script>
    <script type="text/javascript">
        function showLine()
        {
            alert($('#hello').val());
        }
        function setLine()
        {
            $('#hello').val('foo');
        }
    </script>

Этот код отлично работает во всех основных браузерах, кроме IE6.

В Ie6 текстовое поле не обновляется нажатием кнопки, а предупреждение выдает пустую / пустую строку. Однако в других браузерах нажатие «set» меняет его на «foo», которое затем отображается в окне предупреждения.

Кто-нибудь знает, почему это специфично для этого браузера, или что может быть не так с кодом? У меня есть подозрения о .val()

Любая помощь будет оценена.

Ответы [ 4 ]

1 голос
/ 05 июня 2009

Вы должны вызвать val () внутри события document.ready:

$(document).ready(function() {

    $('#hello').val("hi there");

});

Просто чтобы прояснить ситуацию: я говорю только о первом (глобальном) вызове val (). Объявления функций не должны быть внутри функции document.ready.

0 голосов
/ 06 июня 2009

Я думаю, что вы должны использовать .html () вместо .val () ... Попробуйте и скажите, что случилось?

0 голосов
/ 05 июня 2009

Есть ли у вас более одного элемента с идентификатором "привет"?

0 голосов
/ 05 июня 2009

Я не знаю, почему ваш код не работает в IE6, но это не правильный jQuery. Я не могу проверить это прямо сейчас, но это должно работать с некоторыми изменениями:

<button type="button" id="setline">Set</button>
<button type="button" id="showline">fire!</button>

<textarea id="hello"></textarea>

<script type="text/javascript">
    $(document).ready(function(){
       $('#hello').val("hi there");

       $('#showline').click(function()
       {
           alert($('#hello').val());
       });

       $('#setline').click(function()
       {
           $('#hello').val('foo');
       });
   });

Кнопки не должны иметь события onclick в jQuery, вы должны связать их, как показано выше И всегда используйте document.ready!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...