我正在使用我的第一个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();
});
答案 0 :(得分:0)
正如jalynn2和其他人所说,我的选择器不正确。固定和工作:)