Ваша основная проблема в том, что вы используете один и тот же id
для большого количества элементов.id
должен быть уникальным для элемента.Кроме того, id
не должен начинаться с цифры.
Я удалил id
из всех элементов и использую содержащие элементы в качестве области видимости для выделения текстовых полей:
http://jsfiddle.net/grHEY/7/
HTML:
<span style="display: inline;" class="numberBounds">
<input onkeyup="javascript:handle_date_change(this)" valuetype="date" class="firstYear" value="1905" size="4" type="text">
-<input onkeyup="javascript:handle_date_change(this)" valuetype="date" class="firstMonth" value="08" size="2" type="text">
-<input onkeyup="javascript:handle_date_change(this)" valuetype="date" class="firstDay" value="07" size="2" type="text"> <
</span>
<span class="date tag half-padding margin" value="1905-08-07">1905-08-07</span>
<span style="display: inline;" class="numberBounds"> <
<input onkeyup="javascript:handle_date_change(this)" valuetype="date" class="lastYear" value="1905" size="4" type="text">
-<input onkeyup="javascript:handle_date_change(this)" valuetype="date" class="lastMonth" value="08" size="2" type="text">
-<input onkeyup="javascript:handle_date_change(this)" valuetype="date" class="lastDay" value="07" size="2" type="text">
</span>
Javascript:
$(".date").click(
function() {
var first = $(this).prev();
var last = $(this).next();
first.toggle();
last.toggle();
handle_date_change(first, last);
});
function handle_date_change(first, last) {
// now we use normal filtering to get the appropriate values
var first_year = $(".firstYear", first).val();
var first_month = $(".firstMonth", first).val();
var first_day = $(".firstDay", first).val();
var last_year = $(".lastYear", last).val();
var last_month = $(".lastMonth", last).val();
var last_day = $(".lastDay", last).val();
alert(first_year);
}