简单的jQuery函数没有拿起点击功能

时间:2013-02-04 12:22:58

标签: javascript jquery function

我正在使用我的第一个jQuery函数。需要做的是将一个表单分配给该函数。当用户点击提交按钮时,它需要首先对函数中的每个:输入字段进行验证。

我正在指定一个表单作为我的函数的选择器:

  $("form[name='form_name']").validator();

然后将其传递给函数并分配给名为“selected_form”的函数属性。在我的jQuery函数中,我有另一个需要等待单击提交按钮的函数,之后它需要遍历所有:输入表单元素并处理简单验证。

现在的问题是:

a)在我的jQuery函数中,我正在调用return validate();验证,然后检查按钮是否被点击。我怀疑因为函数运行并且没有点击按钮,它会继续并且基本上将validate()函数返回为false而不进行任何检查。我假设我需要自定义这几乎等到按下按钮,但我真的不知道该怎么做。

b)$(selected_form+" :input").each(function() { ... }不起作用,因为它似乎无法将其用作选定内容。我需要遍历“selected_form”属性并仅选择:input字段。有什么帮助吗?

c)如果您对构建正确的jQuery函数有任何其他建议或最佳实践,请提供帮助,这是我的第一次尝试,我宁愿学习现在的最佳实践,因为我愿意遵循自己的想法。

 (function($) {
$.fn.validator = function(user_options) {

    var default_options = {
        exclusions: false,
        rules: false,
        submit_btn_name: 'event_form_submit'
    };

    var selected_form = this;
    var selected_element = false;
    var element_type = false;

    var options = $.extend(default_options,user_options);

    function validate() {

        // Run only if form has been submitted: (this does not appear to work now, the form gets submitted without the return false;
        $("input[type='"+options.submit_name+"']").click(function(event) {

            event.preventDefault();

            // The selector here appears to be wrong?
            $(selected_form+" :input").each(function() {

                // Individual element validation will happen here, for now I am just looking to log the element types :)

                selected_element = this;
                console.log(get_element_type());

            });
            return false;
        });    
        return false;
    };

    function get_element_type() {
        return element_type = element.type;
    }

    return validate();

}
})(jQuery);

 // Run the validator: 
 $(document).ready(function() {
     $("form[name='tepg_form_processor']").validator(); 
 });

1 个答案:

答案 0 :(得分:0)

正如jalynn2和其他人所说,我的选择器不正确。固定和工作:)