我有一个自定义表单,用于将图像文件上传到博客。我尝试用jquery脚本限制将上传文件的数量,但没有成功。这个脚本有什么问题?
我的(简化)表格:
<form action="" method="post" class="adverts-form">
<div class="moxie-shim" id="">
<input id="" multiple="" accept="" type="file">
</div>
<input name="submit" value="Preview" class="adverts-cancel-unload" type="submit">
</form>
我的jquery脚本:
jQuery(".moxie-shim").children("input").change(function(){
if(this.files.length>3)
alert("to many files")
});
// Prevent submission if limit is exceeded
jQuery(".adverts-form").submit(function(){
if(this.files.length>3)
return false;
});
更新
根据@drunkwolf的建议更新了jquery,但图片仍然上传(没有限制)。
jQuery(".adverts-form").submit(function(){
if(jQuery("#adverts-plupload-upload-ui input")[0].files.length>2){
alert("nope still to many")
return false;
}
});
答案 0 :(得分:1)
第二个this
并不是指第一个jQuery(".adverts-form").submit(function(){
if(jQuery('input[type=file]')[0].files.length>2){
alert("nope still to many")
return false;
}
});
。在提交时,您需要检查输入是否有超过3个文件,而不是表单。一种方法是这样:
List<string> tokens = new List<string>();
int token_number=0 ;
char[] character = file_text.ToCharArray();
int i = 0;
for (; i < character.Length; i++)
{
if (char.IsLetter(character[i]))
{
string local_token;
while (char.IsLetterOrDigit(character[i + 1]) || character[i + 1] == '_')
{
local_token += character[i];
tokens.Add(local_token.ToString());
}
}
}
确切的实现显然取决于您在网站/表单上有多少输入。点击here查看工作示例。
答案 1 :(得分:0)
检查this
<div class="moxie-shim" id="">
<input id="file" multiple="" accept="" type="file">
</div>
<input name="button" value="Preview" class="adverts-cancel-unload" type="submit">
jQuery(".moxie-shim").children("input").change(function(){
if(this.files.length>3)
alert("to many files")
});
// Prevent submission if limit is exceeded
jQuery(".adverts-form").submit(function(){
if(jQuery("#file")[0].files.length>3)
return false;
});