2

次のような HTML コードがあります。

<input id="fieldname-1" name="field_name[value][1]" value="1" type="checkbox" />
<input id="fieldname-2" name="field_name[value][2]" value="2" type="checkbox" />
<input id="fieldname-3" name="field_name[value][3]" value="3" type="checkbox" />

次のようなjQueryでこれにアクセスしたい:

$('input[field_name]').change( function() { dosomething(); });

$('.classname')Drupalのcckモジュールによってレンダリングされ、これをテーマレイヤーに追加したくないため、呼び出してこれを行うためにクラスフィールドを追加できません。

最良の方法は、モジュールにすべてのフィールドのクラスを追加させることです。しかし、より迅速な解決策は、jQuery でこれらのフィールドにアクセスする方法を知ることです

4

2 に答える 2

3

attribute equals セレクターを使用して、属性を完全に一致させることができnameます。

$('input[name="field_name[value][2]"]').change(func...

または、で始まるすべて<input>要素が必要な場合は、属性 starts with selector をfield_name使用します。

$('input[name^=field_name]').change(func...

これにより、属性が で始まるすべての<input>要素が選択されます。namefield_name

さらに、それらがすべてチェックボックスである場合:checkboxの代わりに、セレクターで使用できます。input

また、同じアプローチを使用できますが、必要に応じて ID 属性を使用できます。

$('input[id^=fieldname]').change(func...
于 2010-10-18T14:42:55.030 に答える
1

ファジーセレクターが必要なようです:[name ^ = value]次のようなもので十分かもしれません:

$('[name^=field_name]').each(function(index,element){
  $(element).change(function(){})
})
于 2010-10-18T14:45:28.343 に答える