Вот исправление:
$.fn.dateofbirth = function() {
return this.each(function() {
$(this).children('select').change(function(){
var cont = $(this).parent();
var day = $("select[name='Day']", cont).val();
var month = $("select[name='Month']", cont).val();
var year = $("select[name='Year']", cont).val();
var fullDate = day + " / " + month + " / " + year;
$(this).parent().find('.result').val(fullDate);
});
});
};
$('td.dob').dateofbirth();
Ваша проблема в том, что при событии "onChange" вы выбираете значения с помощью: $("select[name='Day']").val();
, а это только выпадающий список FIRST, поэтому вы всегда получаете одно и то же значение.
Исправление состоит в том, чтобы сначала получить родительский элемент элемента, который инициировал событие изменения, а затем работать с выпадающими, которые ВНУТРИ этого родителя.
Если у вас есть вопросы по поводу ядра, дайте мне знать.
Еще одна вещь
Вот что сделал трюк:
При выборе элементов с помощью jQuery вы можете указать контейнер внутри, где искать. Вот что я там сделал, у вас есть $(SELECTOR STRING, container_element)