隐藏输入的值每次都是1短

时间:2012-09-27 07:33:06

标签: javascript jquery

我有一个隐藏的输入附加到表中,如下所示:

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?

1 个答案:

答案 0 :(得分: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解决方案,因为它更容易。