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