0

複数の入力要素を含むフォームがあり、シリアル化する必要があります-HTTP クエリ文字列に変換します。それはうまくいきます。次に、入力値の 1 つを取り除きたかったので、find を使用して、その値と等しくないすべての要素を選択しました。それはうまくいきます。しかし、その後、2 つの検索を連鎖させて 2 つの入力を削除しようとしましたが、失敗しました。

不要な入力を無効にしたり、name 属性を削除したりすることもできることはわかっていますが、これらのオプションは私のアプリケーションでは適切ではありません。

実証するjsfiddleがあります:http://jsfiddle.net/dr_glenn/H8ZwL/

ここでまとめさせてください。次のようなフォームがあります。

<form>
<input type="text" name='aa' value='aa'>
<input type="text" name='bb' value='bb'>
<input type="text" name='cc' value='cc'>
</form>

次のようなjqueryコード:

query_args = $('#form').serialize();
alert( query_args );  // looks OK
query_args = $('#form').find('[name!="bb"]').serialize();
alert( query_args );  // Very good, 'bb' is gone
query_args = $('#form').find('[name!="bb"]').find('[name!="cc"]').serialize();
alert( query_args );  // FAIL! Nothing is displayed.

私がばかげた初心者の間違いを犯しただけなら、親切にしてください!

4

2 に答える 2

1

あなたのセレクターは間違っていますこれを試してください:

form_args = $("#actions").find("[name!='cc'],[name!='ee']").serialize();

フィドル

cc検索と検索eeが必要な#actionsので、属性セレクターでコンマを使用してそれらを区切ります。

あなたのコードがうまくいかなかったのはbb、うまく見つけようとしているのに、の子ではない#actionsを見つけようとしているからです。だから何も得られない。検索しようとしているセレクターとその子孫であるセレクターでコンマ区切りを使用するccbbbbccbb#actions

于 2013-06-22T03:01:00.077 に答える
1

そのはず form_args = $("#actions").find("[name!='cc'][name!='ee']").serialize();

要素属性 name!=cc AND name!=dd を見つけます

于 2013-06-22T03:14:06.347 に答える