jquery serializeArray не работает в Safari

Я пытаюсь использовать метод JQuery serializeArray для создания массива объектов из простой формы (получить данные из формы и кеша для последующего использования):

<fieldset class="myFieldset">
    <div id="divContainer">         
        <div class="anotherdiv">
            <input type="text" name="testBox1" class="aclass" />
            <select name="testSel1" class="atestclass">
                <option value="car">car</option>
                    <option value="boat">boat</option>
                    <option value="plane">plane</option>
                </select>
            </input>
         </div>
     </div>
 </fieldset>
 <fieldset class="submit-wrap">
        <input type="submit" name="enter" id="enter" value="Enter" >
 </fieldset>

Я вызываю serializeArray по клику:

$('#enter').click(function(){       
    var testForm = jQuery('.myFieldset').serializeArray();
    alert(testForm);
});   

Это прекрасно работает в Chrome (http://jsfiddle.net/pCELZ/), но не в Safari. Есть идеи?

//Мои элементы формы не отключены, и я включаю атрибут «имя». Пробовал разные html... // Заранее спасибо.


person 0--    schedule 13.02.2013    source источник


Ответы (2)


вместо использования fieldset используйте form:

<form class="myFieldset">
  <div id="divContainer">         
    <div class="anotherdiv">
        <input type="text" name="testBox1" class="aclass" />
        <select name="testSel1" class="atestclass">
            <option value="car">car</option>
                <option value="boat">boat</option>
                <option value="plane">plane</option>
            </select>
        </input>
     </div>
   </div>
 </form>

и протестируйте его здесь: fiddle

person Jai    schedule 13.02.2013
comment
Спасибо, Джай, за правильный ответ. Сразу же после написания вопроса, упрощения моего кода и проверки его на jsfiddle я пришел к такому же выводу. Ответ Darshanags ниже, похоже, тоже работает. Спасибо еще раз... - person 0--; 14.02.2013

Джай прав. Другой способ сделать это — указать элемент, изменив селектор.

$('#enter').click(function(){       
    var testForm = jQuery('.myFieldset :input').serializeArray();
    console.log(testForm);
});

Рабочая скрипка здесь

person darshanags    schedule 13.02.2013