在某个页面中指定特定表单的验证

时间:2016-07-16 06:56:27

标签: javascript jquery ruby-on-rails forms

我有一个javascript函数,可以在提交之前验证弹出窗体。不幸的是,它是为了每页只处理一个弹出窗体而创建的 在我的情况下,我有两种不同的弹出窗体,所以我想指定做什么以及哪一个。

insert into tblApply(email_Id, Job_Id, Apply_Date)
    select @emailId, tblJobsJob_Id, GetDate() from tblJobs
    where Job_Active = 1

我非常确定这一切都与此相关:

$.fn.goValidate = function() {
var $form = this,
    $inputs = $form.find('input:text');

var validators = {
    email: {
        regex: /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/
    }
};
var validate = function(klass, value) {
    var isValid = true,
        error = '';

    if (!value && /required/.test(klass)) {
        error = 'This field is required';
        isValid = false;
    } else {
        klass = klass.split(/\s/);
        $.each(klass, function(i, k){
            if (validators[k]) {
                if (value && !validators[k].regex.test(value)) {
                    isValid = false;
                    error = validators[k].error;
                }
            }
        });
    }
    return {
        isValid: isValid,
        error: error
    }
};
var showError = function($input) {
    var klass = $input.attr('class'),
        value = $input.val(),
        test = validate(klass, value);

    $input.removeClass('invalid');
    $('#form-error').addClass('hide');

    if (!test.isValid) {
        $input.addClass('invalid');

        if(typeof $input.data("shown") == "undefined" || $input.data("shown") == false){
           $input.popover('show');
        }

    }
  else {
    $input.popover('hide');
  }
};

$inputs.keyup(function() {
    showError($(this));
});

$inputs.on('shown.bs.popover', function () {
    $(this).data("shown",true);
});

$inputs.on('hidden.bs.popover', function () {
    $(this).data("shown",false);
});

$form.submit(function(e) {

    $inputs.each(function() {
        if ($(this).is('.required') || $(this).hasClass('invalid')) {
            showError($(this));
        }
    });
    if ($form.find('input.invalid').length) {
        e.preventDefault();
        $('#form-error').toggleClass('hide');
    }
});
return this;
};
$('form').goValidate(); 

让我们说第一个表单ID是form_1,第二个表单_2。 我该怎么把这条线放进去? 我猜是这样的事情:

$('form').goValidate();  

希望很清楚,谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用表单id定位表单。

离。如果你的第一个表单有id form1,那么你可以写。

$('#form1').goValidate();

和第二个相同。