0

ajaxForm の成功コールバックでフォーム要素にアクセスしようとしています。フォーム要素は 4 番目の要素として渡されます (参照: http://malsup.com/jquery/form/#options-object -> success)。

したがって、を介してテストするとconsole.log(form)、機能します。jQuery オブジェクトを取得し、次の方法でフォームにアクセスできますform[0].

しかし、フォームの入力であるより多くの要素のconsole.log下にあることがわかります。[0]などを介してアクセスできますform[0][0] or form[0][1]

しかし、すべての子オブジェクトを一度に取得するにはどうすればよいでしょうか?

私の状況では、入力の量がわからないので、 のようなものを介して要素のすべての入力にアクセスする必要がありますforeach。しかしform[0]、フォームのDOM要素を取得しているだけです。

少し複雑ですが、私の問題を理解していただければ幸いです。

編集: これは、console.log(フォーム)から得たものです:

[form#doku_newrowJsonForm.doku_newrowJsonForm, context: form#doku_newrowJsonForm.doku_newrowJsonForm, jquery: "1.9.1", constructor: function, init: function, selector: ""…]
0: form#doku_newrowJsonForm.doku_newrowJsonForm
 0: input
 1: input#AdrowAdtableId
 2: input#AdrowCustomerId
 3: input#AdrowContent19.input-small
 4: input#AdrowContent20.input-small
 5: input#AdrowContent21.input-small
 6: input#AdrowContent22.input-small
 7: input#AdrowContent23.input-small
 8: input#AdrowContent24.input-small

form[0] は DOM-Element を提供するだけで、 form[0].find(':input') は Uncaught TypeError: Object # has no method 'find' を提供します ...

Edit2 明確にするために、たとえばinput#AdrowAdtableIdを取得したいと思います。form[0][1] からアクセスできます。しかし、フォームにある入力の長さはわかりません。動的です。したがって、form[0].each() のようなことを行うのは素晴らしいことです。しかし、form[0] は、jQuery オブジェクトではなく、DOM 要素を提供します...

4

3 に答える 3

1

jQuery フォームを使用していて、投稿された値に興味がある場合は、次のようにすることができます。

var form = $('form');
form.ajaxForm({
    beforeSubmit: function(arr, $form, options) {
        form.data('form-values', arr);
    },
    success: function() {
        console.log(form.data('form-values')); // logs the submitted values
    }
});
于 2013-05-08T11:59:26.763 に答える
1

を使用するだけfind()です。フォーム内のすべての入力が必要な場合 (およびフォーム自体に としてアクセスできる場合form[0]) は、次のようにします。

$(form[0]).find(":input")

すでに jQuery オブジェクトの場合formは、次のほうがわずかに優れています。

form.eq(0).find(":input")

:input疑似クラスを使用して、入力に似た要素だけでなく、すべての要素を取得したことに注意してください<input>

于 2013-05-08T11:53:46.623 に答える
1

フォーム上のすべての入力にアクセスするには、.each()

$(form[0]).find(':input').each(function{){
    var myInputValue = $(this).val();
});

入力の特定のタイプを知る必要がある場合は、これを参照してください: jquery を使用して入力タイプを取得する方法?

于 2013-05-08T12:02:32.883 に答える