1

サーバーからクライアント側に純粋な数値IDのみを取得し、それをhtmlの非表示フィールドに動的に追加して配列またはJSON形式(["32","33","34"]つまり:)のように見せ、次のステップでサーバーで受信して解析できるようにする方法を教えてください。非表示フィールドには、開始時に空白の角かっこのみが含まれます[]

私の現在のコードは、隠しフィールドをからにオーバーライドし[]ます"32"

$("#myHiddenField").val(JSON.stringify(data.result[0].newid));
4

2 に答える 2

2

$ .parseJSON()を使用して、非表示の入力値から配列を逆シリアル化し、新しいアイテムをpush()してから、配列を再度シリアル化できます。

var $hiddenField = $("#myHiddenField");
var results = $.parseJSON($hiddenField.val());
results.push(data.result[0].newid);
$hiddenField.val(JSON.stringify(results));

ただし、アイテムが追加されたときに配列を追跡し、フォームが送信されたとき(たとえば、送信イベントハンドラーで)にのみ配列をシリアル化する方が効率的な場合があります。

于 2012-09-23T09:41:37.290 に答える
1

非表示フィールドのデータを解析する必要がないように、実際の配列を保持し、新しいIDをその配列にプッシュし、シリアル化して非表示フィールドに配置することができます。

var myArray = [];

myArray.push(data.result[0].newid);
$("#myHiddenField").val(JSON.stringify(myArray));

注:数値の配列のJSON形式は、[32,33,34]ではなく["32","33","34"]、上記のコードから得られるものでもあります。数値ではなく文字列を使用した形式が必要な場合は.toString()、値をプッシュする前にaを追加します。

myArray.push(data.result[0].newid.toString());
于 2012-09-23T09:52:05.190 に答える