0

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 では動作しません。何か案は?

//私のフォーム要素は無効になっておらず、'name' 属性を含めています。さまざまな html を試しました... //よろしくお願いします。

4

2 に答える 2

1

代わりにfieldsetuseを使用します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>

ここでテストしてください:フィドル

于 2013-02-13T12:04:20.867 に答える
0

ジャイ そうですね。これを行う別の方法は、セレクターを変更して要素を指定することです。

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

ここで働くフィドル

于 2013-02-13T12:17:09.633 に答える