Javascript 简单jQuery函数没有选择click函数

Javascript 简单jQuery函数没有选择click函数,javascript,jquery,function,Javascript,Jquery,Function,我正在尝试我的第一个jQuery函数。需要做的是将表单分配给函数。当用户单击submit按钮时,首先需要对函数中的每个:输入字段进行验证 我正在指定一个窗体作为我的函数的选择器: $("form[name='form_name']").validator(); 然后将其传递到函数中,并分配给名为“selected_form”的函数属性。在jQuery函数中,我有另一个函数,它需要等待单击submit按钮,然后需要遍历所有:input表单元素并处理简单验证 现在的问题是: a) 在jQuer

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

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

  $("form[name='form_name']").validator();
然后将其传递到函数中,并分配给名为“selected_form”的函数属性。在jQuery函数中,我有另一个函数,它需要等待单击submit按钮,然后需要遍历所有:input表单元素并处理简单验证

现在的问题是:

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

b)
$(selected_form+“:input”)。每个(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(); 
 });

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

当您分配单击时,您使用不同的名称
选项。submit_name
与对象
submit_btn_name
中声明的名称不同。另外,输入的选择器不应该有冒号:
$(selected_form+'input')
您介意发布一个包含html的JSFIDLE吗?@jalynn2,非常好的观察,谢谢您的帮助。我尝试删除冒号,但没有成功,我在控制台中收到一个“错误:语法错误,无法识别的表达式:[object]input”。
selected\u form
是DOM元素而不是字符串,所以请尝试`$(selected\u form)。find(input)…`@Evan=(我希望这有帮助)