1

.serialize()関数を使用して、HTMLフォームを使用してデータベースを更新するためのキー->値のペアの文字列を作成します。最近、データ文字列から入力フィールドの1つを省略したいと思っています。.not()関数は機能するはずだと思いましたが、機能しません(ここで使用している方法では)。問題の例については、フィドルを参照してください。http://jsfiddle.net/9RbZ4/

この例では、名前がa、b、c、dの4つのフィールドがあります。name="a"のフィールドをシリアル化関数から省略したいと思います。どうすればいいですか?要素のname属性を参照したいことに注意してください。

どうすればよいですか?

ありがとう!

4

3 に答える 3

2

$('form')を呼び出すと、すべてのフォーム要素が選択されます。次に、.not('[name = "a"]')を呼び出すと、属性name = "a"を持つすべてのフォーム要素が除外されますが、いずれもこの属性。

あなたが達成したいのは

$('form input').not('[name="a"]').serialize();

上記のコードは、フォーム要素内のすべての入力要素を選択してから、指定された名前の入力を除外しています。

于 2012-05-07T10:57:11.367 に答える
2

不要なビットを除外しないと予想されるため、これは少し奇妙に見えます。

ただし、入力ではなくフォーム自体を選択しているため、フィルタリングできません。

$('form *[name]').not('[name="a"]').serialize();

トリックを行う必要があります。

注意-入力以外の要素が含まれている可能性があるため、*[name]を使用します。

于 2012-05-07T11:01:38.073 に答える
1
var the_data = $('form :input[name!="a"]').serialize();

デモ

于 2012-05-07T11:04:19.153 に答える