2012-12-30 99 views
1

我一直在想出一个上传图片的即时预览的可能解决方案。这一切都是通过J'Query完成的,但是如果用户尝试上传超过允许的内容,我希望发出警报。jquery图片上传数量和限制

,它会将图像的代码:

$(".share_button").click(function() 
     { 
      var shareval = $("#share").val(); 
      var uploadvalues=$("#uploadvalues").val(); 
      var X = $('.preview').attr('id'); 

      if(X) 
      { 
       var Z = X+','+uploadvalues; 
      } 
      else 
      { 
       var Z = 0; 
       var dataString = 'share='+ shareval+'&uploads='+Z; 
      } 

      if($.trim(shareval).length==0) 
      { 
       alert("Please Enter Some Text"); 
      } 
      else 
      { 
       // Hide No Shares If Visible 
       $("#Nodata").slideUp();      
       // Display Quick Update 
       $("#flash").show(); 
       $("#flash").fadeIn(400).html('Posting Share...'); 
       $.ajax({ 
        type: "POST", 
        url: "<?php echo SITE_PATH; ?>app/web/home/share_ajax.php", 
        data: dataString, 
        cache: false, 
        success: function(html) 
        { 

         $("#flash").fadeOut('slow'); 
         $("#content").prepend(html); 
         $("#share").val(''); 
         $("#share").focus(); 
         $('#preview').html(''); 
         $('#uploadvalues').val(''); 
         $('#photoimg').val(''); 
        } 
       }); 

       $("#preview").html(''); 
       $('#imageupload').slideUp('fast'); 
      } 
      return false; 
     }); 

我想到了一个解决方案可以在文本检查前把这样的:

if($.trim(X).length > 2) 
{ 
    alert("Only Two Images No More"); 
} 

但这并没有工作,我不是太热用J'Query。任何帮助或指导将不胜感激。

更新:

这是HTML标记:

<div id="imageupload" style="display:none;">   
    <form id="imageform" method="post" enctype="multipart/form-data" action='<?php echo SITE_PATH; ?>app/web/home/image_ajax.php'> 
     <!-- Upload Preview --> 
     <div id="preview"></div> 
     <!-- Upload Image --> 
     <div class="clear"></div> 
     <input type="file" name="photoimg" id="photoimg" style="display:none"/> 
     <a id="upload-share-button" class="button" style="width:570px;text-align:center;margin:10px;">Upload Images</a> 
     <input type='hidden' id='uploadvalues'/> 
    </form> 
</div> 
+0

_“如果用户尝试上传超过允许的内容。”_您能详细说明吗? – undefined

+0

对不起,我应该说,目前用户可以上传尽可能多的他们的愿望。我希望设置一个限制,所以他们只能上传说2张图片。 – HireLee

+0

是否使用多个属性进行文件输入? – undefined

回答

0

看来你使用多个属性的文件输入,您可以检查使用的length财产所选择的图像/文件的长度files对象:

var len = $("#uploadvalues").get(0).files.length; 
if (len > 2) { 
    alert("Only Two Images No More"); 
    return; 
} 

http://jsfiddle.net/T2Xhk/

请注意,Internet Explorer不支持File API。

+0

嗨undefined,我试着你的上面的代码,这打破了j'query我用HTML标记更新了我的questin。 – HireLee

+0

@LeeMarshall嗨,我以为你正在试图计算文件对象的长度,但是你没有使用多个属性,你想达到什么目的? – undefined