如何在jQuery中为特定元素类型添加函数?

时间:2010-04-14 20:55:16

标签: javascript jquery

我可以这样做

jQuery.fn.validate = function(options) {
    var defaults = {
        validateOPtions1 : '',
        validateOPtions2 : ''
    };

    var settings = $.extend({}, defaults, options);

    return this.each(function() {
        // you validation code goes here
    });
};

但这将使validate()可用于每个元素。我可以对任何元素执行此操作:$('some selector')。validate()。

有没有办法可以让它只用于表单元素?例如。 $(”。mySpecialFormClass')。验证()?

2 个答案:

答案 0 :(得分:2)

如果您确实不希望它适用于除<form>标记以外的任何内容,则必须让该函数抛出异常。

jQuery.fn.formsOnly = function() {
  return this.each(function() {
    if (!$(this).is('form')) throw "Forms only!";
    // whatever
  });
};

答案 1 :(得分:1)

答案很简单:

$('form').validate();

选择器在jQuery中有点像这样(就像在CSS中一样)

$('elementType.className')

有关选择器的详细信息,请参阅this page