我有一个隐藏的输入附加到表中,如下所示:
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?
答案 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解决方案,因为它更容易。