2012-01-24 2 views
0

Я делаю мульти форму шага (форма мастер), и я расщепляется формой на 5 части ... так мили первого Див, как это:Jquery - Избегайте пустые входы

<div class="data-1" style="display: block; "> 
    <h3>Data</h3> 
    <fieldset class="inputs"> 
    <ol> 
     // 5 text inputs here 
    </ol> 
    </fieldset> 
</div> 

Via Jquery I пытается захватить 5 входов каждого DIV (другие дивы также имеет флажки, кнопки радио), делая это

$(".data-1 :input").val(); 

для того, чтобы знать, значение входов каждого DIV ... но мне кажется, что Мне нужно перебирать div-входы.

Есть ли способ предотвратить любые пустые ввода? или есть плагин, который это делает?

+0

* * А? Элементы 'div' не являются элементами' input'. –

+0

над входами, находящимися внутри div – JavierQQ23

ответ

0

Взгляните на jQuery.Validate

http://docs.jquery.com/Plugins/Validation

<script> 
    $(document).ready(function(){ 
    $("#myForm").validate(); 
    }); 
    </script> 

<form id="myForm" method="post"> 
    <p> 
    <label for="cname">Name</label> 
    <input id="cname" name="name" size="25" class="required" minlength="2" /> 
    </p> 
    <p> 
    <label for="curl">URL</label> 
    <input id="curl" name="url" size="25" class="url" value="" /> 
    </p> 
    <p> 
    <input class="submit" type="submit" value="Submit"/> 
    </p> 
</form> 
+0

На первый взгляд кажется, что он проверяет всю форму ... есть ли способ проверить его части? – JavierQQ23

+0

Ваши входные атрибуты указывают валидатору, какие элементы проверяются и как их проверять. Он отлично работает, и я действительно рекомендую вам поближе рассмотреть его! :) –

+0

Ну ... Я попробую, потому что я не уверен, могу ли я сделать что-то вроде этого: $ (".datos"). Validate(); ... Я прочитаю документацию – JavierQQ23

-1
$(".data-1 :input:not(:empty)").each(function() 
{ 
// Iterating the not empty inputs 
// $(this).val() contains the value of the current input 
}); 
+1

Нет, [': empty'] (http://api.jquery.com/empty-selector/) проверяет наличие * дочерних элементов *, а не пустых значений. Элементы 'input' являются пустыми по определению (' select' и 'textbox' может и не быть, но в любом случае это связано с непустым значением, не имеющим дочерних элементов). –

0

Это может быть что-то вроде того, что вы ищете ...

$(".data-1 :input").each(function() { 
    var val = $.trim($(this).val()); 
    if (val != '') { 
     // do stuff here... 
    } 
}); 
+0

Он отлично работает для ввода текста, я дам ему попробовать с помощью флажков и переключателей – JavierQQ23

0

Кодекса

$(".data-1 :input").val(); 

... даст вам значение первого входного элемента в пределах первого».data-1" div. Это не даст вам всех.

Чтобы получить значение всех из них, вы можете использовать map (обычно следует get):

var values = $(".data-1 :input").map(function() { 
    return $(this).val(); 
}).get(); 

Это даст вам массив значений.

Массив, созданный выше, будет содержать пустые значения. Если вы хотите исключить пустые значения, просто вернуть undefined из функции итератора для них, и они будут опущены: «... но мне кажется, что я должен перебрать Див входов»

var values = $(".data-1 :input").map(function() { 
    var val = $(this).val(); 
    return val ? val : undefined; 
}).get(); 
Смежные вопросы