我无法在隐藏输入中获取正确的值。
下面我有一个表单,每次用户点击一个按钮时都会附加到表格中:
var $fileImage = $("<form action='imageupload.php' method='post' enctype='multipart/form-data' target='upload_target_image' onsubmit='return imageClickHandler(this);' class='imageuploadform' >" +
"<p class='imagef1_upload_form' align='center'><br/><span class='msg'></span><label>" +
"Image File: <input name='fileImage' type='file' class='fileImage' /></label><br/><br/><label class='imagelbl'>" +
"<input type='submit' name='submitImageBtn' class='sbtnimage' value='Upload' /></label>" +
"<input type='hidden' class='numimage' name='numimage' value='" + numimage + "' /></p>" +
"<iframe class='upload_target_image' name='upload_target_image' src='#' style='width:0px;height:0px;border:0px;solid;#fff;'></iframe></form>");
$image.append($fileImage);
现在这是我收到的问题,它处理表格中隐藏的输入:
<input type='hidden' class='numimage' name='numimage' value='" + numimage + "' />
假设我将两个表单附加到表中,第1行中的一个表单(隐藏输入中的值应为1)和第2行中的一个表单(隐藏输入中的值应为2)。
现在,如果我使用表单1上传文件,则隐藏输入中的值等于1,这是正确的。如果我然后使用表单2上传文件,那么输入中的值等于2.这很好。
问题是,如果我恢复到表单1并上传另一个文件,由于我编写它的方式,隐藏输入的值仍然是2,当它应该是1时。
所以我的问题是如何更改下面的代码,以便隐藏输入的值是根据用于上传文件的形式的数字,(对于使用的表单1,值= 1,值= 2对于使用的表格2,对于使用的表格3,值= 3等)
以下是代码:
var numimage = 0;
...//form code from top goes here
//CODE BELOW INCREMENTS A QUESTION NUMBER AND INCREMENTS THE HIDDEN VALUE FOR EACH ROW ADDED
$('.num_questions').each( function() {
var $this = $(this);
var $questionNumber = $("<input type='hidden' class='num_questionsRow'>").attr('name',$this.attr('name')+"[]")
.attr('value',$this.val());
$qid.append($questionNumber);
++numimage;
$(".numimage").val(numimage);
});
//BELOW STARTS THE UPLOADING OF THE FILE
function startImageUpload(imageuploadform){
$(imageuploadform).find('.imagef1_upload_process').css('visibility','visible');
$(imageuploadform).find('.imagef1_cancel').css('visibility','visible');
$(imageuploadform).find('.imagef1_upload_form').css('visibility','hidden');
sourceImageForm = imageuploadform;
});
//BELOW IS CODE FOR WHEN FILE UPLOAD STOPS
function stopImageUpload(){
$(sourceImageForm).find('.imagef1_upload_form .msg').html(result);
$(sourceImageForm).find(".fileImage").replaceWith("<input type='file' class='fileImage' name='fileImage' />");
$(sourceImageForm).find('.imagef1_upload_form').css('visibility','visible');
return true;
}
答案 0 :(得分:0)
在任何地方添加此方法
function GetFormCount(){
var frm = $('FORM');
if(frm[0] != undefined)
{
if(length in frm )
{
return frm.length ;
}
return 1;
}
return 0;
}
JS更改表单的创建
var $fileImage = $("<form action='imageupload.php' method='post' enctype='multipart/form-data' target='upload_target_image' onsubmit='return imageClickHandler(this);' class='imageuploadform' >" +
"<p class='imagef1_upload_form' align='center'><br/><span class='msg'></span><label>" +
"Image File: <input name='fileImage' type='file' class='fileImage' /></label><br/><br/><label class='imagelbl'>" +
"<input type='submit' name='submitImageBtn' class='sbtnimage' value='Upload' /></label>" +
"<input type='hidden' class='numimage' name='numimage' value='" + GetFormCount()+ "' /></p>" +
"<iframe class='upload_target_image' name='upload_target_image' src='#' style='width:0px;height:0px;border:0px;solid;#fff;'></iframe></form>");
P.S。据我所知,你在每种形式都有这个领域。