У меня есть пошаговая форма, в которой есть проверки на каждом шаге.Таким образом, чтобы отправить полную форму, я создал 2 метода для поиска по каждой форме шага, собирая все элементы, чтобы заполнить скрытую форму на странице и отправить ее.То, что у меня есть, хорошо работает для всего, кроме флажков.Он захватывает флажок, добавляя его в окончательную форму, независимо от того, был ли он отмечен.Это не отражает то, что на самом деле заполнено.Поэтому я пытаюсь изменить то, что мне нужно, чтобы захватить элементы флажка, только если они отмечены безуспешно.
Вот то, что у меня работает,
<code>
function submitMainForm()
{
$('#step1form, #step2form, #step3form').each(
function(){
$('#CompetitiveSave').append(getNamesAndValues($(this)));
});
$('#CompetitiveSave').submit(); // submit the created form
}
, которое вызывает
function getNamesAndValues(jQObj)
{
var divContainer = $(document.createElement('div'));
var inputElement = $(document.createElement('input'));
inputElement.attr('type', 'hidden');
jQObj.each( function (){
if (this.id){
$(this).find('.FormLine').children().each(function(){
if (this.id && this.value){
inputElement.attr('name',this.name);
inputElement.attr('id',this.id);
inputElement.attr('value',this.value);
divContainer[0].appendChild(inputElement[0]);
inputElement = $(document.createElement('input'));
inputElement.attr('type','hidden');
}
}
);
}<br>
});
return divContainer.html();
}
Он отлично работает, так как не включает в себя ВСЕ флажки, независимо от того, были они отмечены или нет.Любые указатели на то, что изменить, очень ценятся
Я пытался
function getNamesAndValues(jQObj)
{
var divContainer = $(document.createElement('div'));
var inputElement = $(document.createElement('input'));
inputElement.attr('type', 'hidden');
jQObj.each( function (){
if(this.id)
{
$(this).find('.FormLine').children().each(function(){
if (this.id && this.value)//if it has an id and a value
{
if(this.type=='checkbox' && this.attr('checked') )//if it is a checkbox, it has to be checked to include
{
inputElement.attr('name',this.name);
inputElement.attr('id',this.id);
inputElement.attr('value',this.value);
divContainer[0].appendChild(inputElement[0]);
inputElement = $(document.createElement('input'));
inputElement.attr('type','hidden');<br>
}
else if(this.type!='checkbox')//otherwise if it isn't a check box, include it
{
inputElement.attr('name',this.name);
inputElement.attr('id',this.id);
inputElement.attr('value',this.value);
divContainer[0].appendChild(inputElement[0]);
inputElement = $(document.createElement('input'));
inputElement.attr('type','hidden');
}</p>
<pre><code> }
}
);
}
});
return divContainer.html();
} Но это не сработало