0

フォームがあり、それに動的にフィールドを追加します。フィールドを追加した後、次のように name 属性を強化したいと思います。

<form id="workshops" action="" method="post">
  <input type="hidden" value="1" name="form-0-Workshops">
  <input type="hidden" value="morning" name="form-0-Day">
  <input type="hidden" value="3" name="form-0-Workshops">
  <input type="hidden" value="evening" name="form-0-Day">
  <input type="hidden" value="3" name="form-0-Workshops">
  <input type="hidden" value="morning" name="form-0-Day">
</form>

なる:

<form id="workshops" action="" method="post">
  <input type="hidden" value="1" name="form-0-Workshops">
  <input type="hidden" value="morning" name="form-0-Day">
  <input type="hidden" value="3" name="form-1-Workshops">
  <input type="hidden" value="evening" name="form-1-Day">
  <input type="hidden" value="3" name="form-2-Workshops">
  <input type="hidden" value="morning" name="form-2-Day">
</form>

私はこれを最初に持っていますが、私は何の進展もありません.....

var forms = $('form#workshops input[name$="Workshops"]');

for (var i=0, formCount=forms.length; i<formCount; i++){
    $('form#workshops input[name$="Workshops"]').each(function() {
        //$(this) seems to be empty    
    });
}
4

4 に答える 4

1

これを使用してみてください:

// Get all the forms inputs
var $forms = $('form#workshops input[name$="Workshops"]');

// Loop through each form inputs
$forms.each(function () {
    console.log($(this));
});
于 2013-04-23T13:07:51.133 に答える
0

あなたのコードは、ループ内で物事を再選択し続けます。意味がありません。

それぞれを有利に使用してください。インデックスが提供されるため、for ループを実行する必要はありません。.

function rename (i) {
    var parts = this.name.split("-");
    parts[1] = i;
    this.name = parts.join("-");
}

var form = $("#workshops");
form.find('input[name$="Workshops"]').each(rename);
form.find('input[name$="Day"]').each(rename);
于 2013-04-23T13:20:56.573 に答える
0

たぶん試してみてください:

$('#workshops input[name$="Workshops"]').each(function() { /*...*/ });
于 2013-04-23T13:09:16.113 に答える
0

次のコードを試してください。

var forms_input = $('form#workshops input[name *="Workshops"]');

forms_input.each(function() {
    console.log($(this))
});
于 2013-04-23T13:31:45.260 に答える