0

テーブルに追加する非表示の入力があります。これは以下のとおりです。

var $fileImage = $("<form action='imageupload.php' method='post' enctype='multipart/form-data' target='upload_target_image' onsubmit='return imageClickHandler(this);' class='imageuploadform' >
<input type='hidden' class='numimage' name='numimage' value='" + GetFormImageCount() + "' /></form>");
$image.append($fileImage);

以下は、非表示の入力の値を決定する関数です。

function GetFormImageCount(){ 
  return $('.imageuploadform').length;
}

フォーム1がテーブルの行1に追加されると、これは非表示の入力の値が1になることを意味します。問題は、これが行われていないことです。値は0です。

フォーム2が追加されると、テーブル行2に追加されます。これは、非表示の入力の値が2である必要があることを意味しますが、問題は、この入力の値が1であるということです。

だから私の質問は、なぜ隠された入力の値が値よりも1少ないのですか?

4

1 に答える 1

2

私にとっては、正常に機能しています。すべての要素を選択しています。最初.imageuploadformは要素がないため、lengthは0です。

属性を設定するときに値を+1するか、値を設定する前に要素を追加することができます。

var $fileImage = $("<form action='imageupload.php' method='post' enctype='multipart/form-data' target='upload_target_image' onsubmit='return imageClickHandler(this);' class='imageuploadform' >
<input type='hidden' class='numimage' name='numimage'/></form>");
$image.append($fileImage);
setTimeout(function () {
    $fileImage.attr('value', GetFormImageCount());
}, 0);

このsetTimeout関数は、DOMが要素を追加するのを待つために使用されます。注意してください;)簡単なので、 +1ソリューションを使用します。

于 2012-09-27T07:36:56.420 に答える