Czy są jakieś sposoby na wypełnienie wszystkich danych wejściowych z określonego formularza? powiedzmy, coś takiego:
<form id="unique00">
<input type="text" name="whatever" id="whatever" value="whatever" />
<div>
<input type="checkbox" name="whatever" id="whatever" value="whatever" />
</div>
<table><tr><td>
<input type="hidden" name="whatever" id="whatever" value="whatever" />
<input type="submit" value="qweqsac" />
</td></tr></table>
</form>
<form id="unique01">
<div>
<input type="text" name="whatever" id="whatever" value="whatever" />
<input type="checkbox" name="whatever" id="whatever" value="whatever" />
</div>
<table><tr><td>
<input type="hidden" name="whatever" id="whatever" value="whatever" />
</td></tr></table>
<select>blah...</select>
<input type="submit" value="qweqsac" />
</form>
etc forms... forms...
* uwaga: każdy formularz może mieć inną ilość danych wejściowych i typ, a także inną strukturę html
więc czy istnieje sposób na wypełnienie danych wejściowych z określonego identyfikatora formularza? np. jeśli kliknę przycisk wysyłania z określonego identyfikatora formularza, jquery wypełni za mnie wszystkie dane wejściowe w tym identyfikatorze formularza. obecnie robię tak:
$("form").submit(function(){ return validateForm($(this)) });
function validateForm(form){
var retVal = true;
var re;
$.each(form.serializeArray(), function(i, field) {
var input = $('input[name='+field.name+']');
field.value = $.trim(field.value);
switch(field.name){
case "name" :
and another cases...
}
})
}
to była praca, ale w takim przypadku otrzymuję tylko field.name i field.value, a właściwie to, czego chcę, to obiekt jquery dla każdego elementu wejściowego, aby móc uzyskać dostęp do ich css, id, name i nawet animować te elementy wejściowe
czy jest na to jakiś sposób?
daj mi znać i z góry dziękuję! I
$("form#formID input[type=text],form#formID select")
$("form#formID :input").each
Wyjściainput
typ,select
rodzaj, a nawetbutton
wejść typu. Przynajmniej tak jest w moim kodzie.input
vs:input
. $ (": input") wybiera wszystkie elementy formularza jQuery. $ ("input") wybiera tylko tagi wejściowe.Poniższy kod pomaga uzyskać szczegóły elementów z konkretnego formularza o identyfikatorze formularza,
$('#formId input, #formId select').each( function(index){ var input = $(this); alert('Type: ' + input.attr('type') + 'Name: ' + input.attr('name') + 'Value: ' + input.val()); } );
Poniższy kod pomaga uzyskać szczegóły elementów ze wszystkich formularzy, które znajdują się na stronie ładowania,
$('form input, form select').each( function(index){ var input = $(this); alert('Type: ' + input.attr('type') + 'Name: ' + input.attr('name') + 'Value: ' + input.val()); } );
Poniższy kod pomaga uzyskać szczegółowe informacje o elementach, które są umieszczane na stronie ładowania, nawet jeśli element nie jest umieszczony wewnątrz tagu,
$('input, select').each( function(index){ var input = $(this); alert('Type: ' + input.attr('type') + 'Name: ' + input.attr('name') + 'Value: ' + input.val()); } );
UWAGA: Dodajemy więcej nazw znaczników elementów, których potrzebujemy na liście obiektów, jak poniżej,
Example: to get name of attribute "textarea", $('input, select, textarea').each( function(index){ var input = $(this); alert('Type: ' + input.attr('type') + 'Name: ' + input.attr('name') + 'Value: ' + input.val()); } );
źródło
Użyj atrybutu „elementy” formularza HTML :
$.each($("form").elements, function(){ console.log($(this)); });
Teraz nie trzeba podawać takich nazw, jak „wejście, obszar tekstu, zaznacz ...” itp.
źródło