Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Применение библиотек > JQuery. Странная работа в Хроме и Сафари


Автор: FlakeMusic 8.9.2010, 09:17
Здравствуйте.

Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Copying and Pasting in a TextBox</title>

    <script src="jquery-1.4.2.js" type="text/javascript"></script>
    
    <script>
    var a = 0;
        $(function () {
            $('.hint').each(function (){            
                if(this.value == '' || this.value == this.title){
                    $(this).val($(this).attr('alt')).addClass('c-grey');
                }
            });
        });
    </script>



</head>
<body>
<form method="get">
    <input type="text" 0="" title="Укажите стоимость" alt="Укажите стоимость" maxlength="14" class="text hint parseInt c-grey" id="car-cost" name="car_cost">
    <input type="submit" value="Отправить" class="submit">
</form>

</body>
</html>


Почему форма везде сабмиттится, кроме Хрома и Сафари? В этих браузерах просто фокус переходит на поле и всё.

Автор: CruorVult 8.9.2010, 09:27
maxlength="14" - что-то Вам говорит?
а в alt="Укажите стоимость" больше 14, по-этому и не сабмитится

Автор: FlakeMusic 8.9.2010, 11:10
Спасибо, помогло)

Тут выяснилась ещё одна проблема. Выполняю $.getJSON(), но данные приходят не в том порядке, который формируется серверной частью. В результате список выстраивается неправильно.

Автор: CruorVult 8.9.2010, 11:36
код в студию. и серверной и клиентской частей

Автор: FlakeMusic 8.9.2010, 11:56
Вот код клиента
Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Copying and Pasting in a TextBox</title>

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js" type="text/javascript"></script>
    
    <script>
        $('#get-list').live('click', function() {
            $.getJSON('ajax.php', function (data) {
                $.each(data, function(i,item){
                    alert(i);
                });
            });
        });
    </script>



</head>
<body>
<form method="get">
    <input id="get-list" type="button" value="Получить список" class="submit">
</form>

</body>
</html>

Серверная часть
Код

$t = array();

$t[50] = "1y";
$t[1] = "2y";
$t[10] = "3y";

echo json_encode($t);


В Файрфоксе алерт выводит 50, 1, 10
Хром выводит 1, 10, 50

Автор: CruorVult 8.9.2010, 12:19
у Вас на сервере уже не правильный порядок. Хром просто умнее, видит что числовые индексы вот и сортирует, а файрфокс просто проходит по объекту.  Сформируйте на сервере данные в правильном порядке и всё.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)