【问题标题】:Change event on Form validation表单验证的更改事件
【发布时间】:2014-07-10 09:22:33
【问题描述】:

我正在开发以下 jQuery 表单验证脚本。

我希望在提交按钮可点击之前验证某些输入字段是否已填充。我的 validateFileInput 函数中的第二个条件似乎有问题

/* Validate File Size */
var validateFileInput = function() {
  if ($('#fileField')[0].files.length > 0 || $('#defImage').val().length > 0 )   {
    return true;
   }
 }                   

var validate = function(){
  if ($('#campaign_name').val().length   >   0   &&
      $('#headline_area').val().length  >   0   &&
      $('#description_area').val().length  >   0 &&
      validateFileInput()  ) {
      $("input[type=submit]").prop("disabled", false);
  }
  else {
    $("input[type=submit]").prop("disabled", true);
  }
}

$(document).ready(function () {
 validate();
  $('#new_campaign').on( 'change', ':input', function (e){
    e.preventDefault();
    validate();
    console.log('I just validated');   
 });
});

所以这行似乎是当条件满足时提交按钮仍然无法点击的问题:

$('#defImage').val().length > 0

如果我在添加文件后在控制台中运行它,它会输出为 true,所以我不确定为什么这不起作用。

编辑

第二个文件字段的 html 如下所示:

<a data-remote="true" data-target=".our-images" data-toggle="modal" href="/default_images" id="image-default-button">Use one of ours</a>   
<input id="defImage" name="campaign[default_image_id]" type="hidden" />

我正在使用 Ajax 请求获取图像,然后将图像的 id 传递给隐藏字段#defImage,然后它将给我

<input id="defImage" name="campaign[default_image_id]" type="hidden" value="3" />

我是否在验证过程中处理了这个错误?

我创建了一个jsfiddle,但是当输入类型设置为文件时,这一切都有效。

【问题讨论】:

标签: jquery ruby-on-rails ruby forms validation


【解决方案1】:

如果有文件,你的函数返回true,但当条件为false时返回undefined,所以它失败了。

尝试改变你的

var validateFileInput = function() {
  if ($('#fileField')[0].files.length > 0 || $('#defImage').val().length > 0 )   {
    return true;
   }
 }  

到:

var validateFileInput = function() {
  return ($('#fileField')[0].files.length > 0 || $('#defImage').val().length > 0 );
 }

【讨论】:

  • 感谢您的回答,我已更改为您所说的内容,但行为仍然相同
  • 您可以将您的 HTML 表单添加到您的问题中吗?或者像@sarath 说的那样,把所有东西都放在小提琴里。
  • 问题已更新,希望信息能让事情更清楚一点
  • 能否删除您的回答,我已经再次问过这个问题,但这次以更清晰的方式解决了这个问题,谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多