2010-04-14 59 views
1

我能做到這一點如何將函數添加到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

你得有功能拋出一個異常,如果你真的不希望它的任何東西,但<form>標籤工作。

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

答案很簡單:

$('form').validate(); 

選擇器的工作有點像這樣在jQuery的(就像在CSS)

$('elementType.className') 

上選擇更多詳情,請參見this page

+0

我想使它成爲.validate()除了'form'類型的元素之外不可用。所以,如果我調用$('div')。validate(),應該拋出一個'未定義的函數'。例如,.val()(我相信)只適用於表單元素(input,select,textarea)。 – 2010-04-14 21:02:21

+0

@Chad不是這種情況 - 你可以使用'val()'來處理任何你想要的東西。當然,它不會「工作」,但是框架並沒有使它不可能稱之爲「工作」。 – Pointy 2010-04-14 21:08:29

+0

是的,我剛剛意識到這一點。 – 2010-04-14 21:09:22

相關問題