我有一个隐藏的输入,它附加到表格中,如下所示:
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?
最佳答案
对我来说,它正在正常工作。您选择了所有 .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 解决方案,因为它更容易。
关于javascript - 隐藏输入的值每次都短1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12616291/