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。

所以我的问题是为什么 hudden 输入的值比应该的值小 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 回答