2017-09-08 18 views
0

フォームのすべてのフィールド値を単一のオブジェクトに変換する次のコードがあります。ただし、動的にロードされる隠しフィールドは変換されません(ただし、値がハードコードされている場合は変換されます)。serializeArray()は動的にロードされた隠しフィールドでは機能しません

私の研究によると、serializeArray()は、名前を持つ限り、隠しフィールドをカバーする必要があります。私には名前があります。だからここで何が間違っているのか分からない。

serializeArray():jQueryの

を使用して隠しフィールド値の

var data = {}; 
$("#form1").serializeArray().forEach(function(x){ 
    data[x.name] = x.value; 
}); 
console.log(data); 

動的ロード

$("#field1").val("400"); //400 is just an example here 

フォーム:

serializeArra:問題の

<form id="form1"> 
    <!-- Not serialized --> 
    <input type="hidden" name="field-value.hidden.1" id="field1" value=""/> 

    <div class="container"> 
     <div class="row"> 
      <div class="col-sm-12"> 
       <!-- Works fine --> 
       <textarea id="field2" name="field-value.show.1" rows="3" cols="10"></textarea> 
      </div> 
     </div> 
    </div> 
</form> 

概要

<input type="hidden" name="field-value.hidden.1" id="field1" value="400"/> 

それがあるない場合:入力がどのように見える場合は、yは動作します、私はちょうどここ読んでから発見

<input type="hidden" name="field-value.hidden.1" id="field1" value=""/> 

$("#field1").val("400"); 

答えて

0

一つのワークアウト: (https://stackoverflow.com/a/25402639/4996722

$("input[id=field1]").val("400");値を正しく置きますそこで。しかし、これは同じ理由で$("#field1").val("400")が機能しない理由がないため、JQueryのバグかもしれません。

関連する問題