0

わかりました。私は、divや特定のフォームなど、特定のコンテナ内のすべてのフォーム要素のオブジェクトを最終的に返すことができる再利用可能な関数を自分で作成しようとしています。ただし、実際のコンテナ/フォームを関数に渡して、要素を実行できるようにすることに固執しているようです。

現在私は持っています:

function findAllFormElements(formElem)
{
    //detect all form elemets on the page in a given form/container
    formObj = {};
    $(formElem ':input').each(function(key, val)
    {
        $(document).append(val+'<br>');
    });
    console.log(formObj);
}

ここでformElem、含まれている要素/フォーム要素であることが期待されます。

<div class="something">
   <input type="text">
   <input type="text">
   <input type="text">
   <input type="text">
   <select>
     <option></option>
   </select>
   <textarea></textarea>
</div>

また

<form class="something">
   <input type="text">
   <input type="text">
   <input type="text">
   <input type="text">
   <select>
     <option></option>
   </select>
   <textarea></textarea>
</form>

このプロジェクトの一部のフォームには実際にはフォームタグがないため、どちらも長期的には許容可能なコンテナタイプになります。

私の現在の例は、コンソールに物事を吐き出し、それらをコンソールに追加するので、私が言いたいことを正確に描写していませんdocumentが、パラメーターを正しく渡す方法を取得しformElemたら、すべての入力タイプを取得できるようになります。ストレート<input>タグから<select>、までtextareaは、すべてのフォーム要素のオブジェクトになります。ここで、id / nameはオブジェクトのキーであり、値がある場合は値です。いずれにせよ、このタイプのキャプチャに最適な戦術を見つけようとするだけです。そのため、要素を繰り返し処理して、この情報を取得できます。

4

1 に答える 1

0

jQuery を使用すると、.serializeArray()これらの要素を簡単に取得<form>して、そこからオブジェクトを作成できます...

$('form').serializeArray(); // will turn into a key/value object

<div>特定のコレクションをシリアライズしたいので、次のようにします。

//turn that div (filled with inputs) into a form element
var tempForm = $('<form />', { html: $('#yourDiv').html() });

var objResult = tempForm.serializeArray(); // now serialize

jsFiddle デモ

于 2012-12-11T22:13:19.037 に答える