найти все элементы формы
Хочу сделать проверку формы
пример: <form method="post" name="form03" action="" > <input type="hidden" name="status" value="0" > Логин*<br /> <input type="text" name="login" required="required" > Пароль*<br /> <input type="password" name="password" required="required" > Email*<br /> <input type="text" name="email" required="required" > <input type="submit" name="go_callback_form03" value="Отправить" > </form>
$(document).ready(function(){
$('input[name=go_callback_form03]').click(function(){
var form = $('form[name=form03]');
var values = new Array();
//...
// перебор элементов формы и запись их в массив values
//...
});
});
так вот подскажите как мне задать перебор всех элементов формы чтобы потом проверить их на заполненность, нажатие (для чекбоксов и радио), на выбор (для селектов) у меня есть пример из простого JS где это делается так:
for(var i = 0; i < form.elements.length; i++){
el = form.elements[i];
}
а как это сделать в JQUERY ? :( |
<script type="text/javascript" src="http://yandex.st/jquery/1.4.4/jquery.min.js"></script>
<form method="post" name="form03" action="" >
<input type="hidden" name="status" value="0" >
Логин*<br />
<input type="text" name="login" required="required" >
Пароль*<br />
<input type="password" name="password" required="required" >
Email*<br />
<input type="text" name="email" required="required" >
<input type="submit" name="go_callback_form03" value="Отправить" >
</form>
<input type="button" onclick="Test()" value="Test">
<script type="text/javascript">
function Test() {
$("form[name='form03']").find("input,select").not('[type="submit"]').each(function() {
alert($(this).attr('type'))
});
}
</script>
|
спс большое помогло
а то у меня порой бывают очень большие формы и все поля прописывать по именам проблематично а так смогу создать свою универсальную проверку :) |
кстати какие атрибуты можно узнать находясь на том или ином элементе.
а то хотелось бы к примеру отделить select'ы и textarea для дополнительной проверки других значений в этих элементах. По выше указанному способу могу узнать:
$("form[name='form03']").find("input,select,textarea").not('[type="submit"]').not('[type="hidden"]').each(function(){
var disabled = $(this).attr('disabled');
var name = $(this).attr('name');
var type = $(this).attr('type'); // если елемент INPUT
var value = $(this).val();
// ... проверка
}
а вот как при этом определить что элемент INPUT, SELECT и TEXTAREA ? |
wcb-falcon,
Ну Вы можете распарсить отдельно
$("form[name='form03']").find("input").not('[type="submit"]').not('[type="hidden"]').each(function(){
var disabled = $(this).attr('disabled');
var name = $(this).attr('name');
var type = $(this).attr('type'); // если елемент INPUT
var value = $(this).val();
// ... проверка
});
$("form[name='form03']").find("select").each(function(){
// ... проверка
})
$("form[name='form03']").find("textarea").each(function(){
// ... проверка
});
А можно внутри глядеть Тег
<script type="text/javascript" src="http://yandex.st/jquery/1.4.4/jquery.min.js"></script>
<form method="post" name="form03" action="" >
<input type="hidden" name="status" value="0" >
Логин*<br />
<input type="text" name="login" required="required" >
Пароль*<br />
<input type="password" name="password" required="required" >
Email*<br />
<input type="text" name="email" required="required" >
<textarea></textarea>
<input type="submit" name="go_callback_form03" value="Отправить" >
</form>
<input type="button" onclick="Test()" value="Test">
<script type="text/javascript">
function Test() {
$("form[name='form03']").find("input,select,textarea").not('[type="submit"]').each(function() {
alert(this.nodeName)
});
}
</script>
|
Цитата:
|
А чем не подходит serializeArray?
|
| Часовой пояс GMT +3, время: 13:32. |