У меня есть форма с id = 'form1', а другая с формой 'form2'. На submit я хочу передать обе формы как объекты в одну функцию проверки, которая может их проверить. Я смущен тем, как это сделать. Если я сделаю что-то вроде
var form = $('#form1');
Validate(form);
как получить доступ к текстовым полям переменной формы? Я не хочу писать повторяющиеся функции проверки, так как обе формы похожи на ALMOSt.
Вы также можете сделать следующее...
function validate(formid){
var form = $("#"+formid);
var name = form.find("#name");
var number = form.find("#number");
alert(name.val());
alert(number.val());
}
validate("form1");
validate("form2");
Предполагая, что обе формы одинаковы:
ValidateForm($("#form1, #form2"));
function ValidateForm(forms){
forms.each(function(){
$(this).find('input[type=text]').each(function(){
//Do something to validate text field
})
$(this).find('input[type=checkbox]').each(function(){
//Do something to validate checkbox
})
})
}
С именем полей вы можете сделать это:
function Validate(form) {
form = form[0]; // raw element
if (check_syntax(form.name.value)) { doSomething(); }
if (check_syntax(form.email.value)) { doSomething(); }
if (check_syntax(form.anotherfield.value)) { doSomething(); }
}
Если каждое поле в форме имеет имя, вы можете получить к нему доступ через form.fieldName или form ['fieldName'].
С уважением.
Попробуйте .find. Ваша форма будет служить контекстом, и вы можете использовать его для разных форм.
Смотри ниже:
var form = $('#form1');
function Validate(form){
var field1 = form.find(".field1");
}