javascript - 隐藏输入的值每次都短1

标签 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?

最佳答案

对我来说,它正在正常工作。您选择了所有 .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/

相关文章:

javascript - javascript 中一个简单的高阶函数的例子

javascript - 使用 Jquery 了解 Drupal 7 表单中的匿名用户

javascript - Jquery将项目添加到列表而不重新加载页面

javascript - 将 URL 分配给 a.href 的神奇之处

javascript - 客户端和服务器端编程有什么区别?

javascript - 如何根据产品id访问页面

javascript - jQuery伪造点击事件

javascript - jquery 平滑滚动到 WordPress 中的 anchor

javascript - 如何将 Jquery 代码转换为 React JS?

jquery - jQuery 的 ajax 默认超时值是多少?