将jquery验证添加到文件上载

时间:2012-05-18 16:06:20

标签: jquery validation

有人能指出我正确的方向吗?我对此很新,所以我不确定这里发生了什么。这似乎很简单,但由于某种原因不起作用。

我有一个(Telerik)模式弹出窗口,其中包含一个包含多个输入字段的表单,其中大多数都使用html助手进行输入。我对这些领域的工作进行了验证。表单还有一个文件上传。这就是我想要验证的内容。

现在,我只想确认用户选择了一个文件。如果他们在没有上传文件的情况下提交表单,他们应该在窗口关闭之前收到一条消息。

这是我的输入

<input type="file" name="file1" id="file1" /><br />
<label for="file1" id="file1Error">Please choose a file</label>

这里是最初隐藏错误消息的jquery,检查是否存在文件,如果没有则显示错误

$('#Submit')
  .click(function()
  {
   ('#file1Error').hide();
   var file = $('#file1').val();
   if (! file)
  {
  $('#file1Error').show();
  return;
  }
  }); 

我觉得代码没有达成某些东西。我已经尝试将它放在几个地方:在页面上现有的telerik脚本注册器(加载模态窗口的javascript所在的位置)内,在它自己的脚本注册器中,将它嵌套在加载脚本中的.open()中。

有人能帮我推动正确的方向来解决这个问题吗?

编辑: 暂时改变我的要求范围。 我只想在单击提交按钮时显示错误消息。 (我可以稍后添加验证)。那么为什么这不起作用:

    //initially hide the message--this works fine

 $(function()
   {
      $('#file1Error').hide();

 //display the message on submit click--this does not work
   $('#Submit').click(function()
   {
      $('#file1Error').show();
   });
}); 

3 个答案:

答案 0 :(得分:0)

您需要先测试 提交表单。看看here

答案 1 :(得分:0)

检查第四行。
$( '#file1Error')隐藏();

答案 2 :(得分:0)

$('#Submit').click(function()
  {
   ('#file1Error').hide();
   var file = $('#file1').val();
   if (file == "")
  {
  $('#file1Error').show();
  return false;
  }
return true; 
//or $('#frm1').submit();
  });