2012-05-30 1 views
0

У меня есть форма с тремя раскрывающимися списками, чтобы выбрать месяц/день/год. Мне нужно отправить информацию, выбранную в формате ISO 8601 (например, «2012-05-30») через скрытое поле. Как я могу использовать jQuery для создания значения даты на основе того, что выбрано в этих раскрывающихся списках?jQuery копировать несколько выпадающих списков в скрытое поле

HTML, это что-то вроде:

<select name=month> 
    <option>01</option> 
    <option>02</option> 
    <option>etc...</option> 
</select> 

<select name=day> 
    <option>01</option> 
    <option>02</option> 
    <option>etc...</option> 
</select> 

<select name=year> 
    <option>2012</option> 
    <option>2013</option> 
    <option>etc...</option> 
</select> 

<input type="hidden" name="date" value=""> 

ответ

1

Мне нужно отправить данные, выбранные в ISO 8601 (например, '2012-05-30') с помощью скрытого поля.

$('#formId').submit(function(){ 

    var dt = $('select[name=year] option:selected').text() 
     + '-' + $('select[name=month] option:selected').text() 
     + '-' + $('select[name=day] option:selected').text(); 

    $('input[name=date]').val(dt); 
}); 
+1

@Nate: Я отвечал за 1 минуту до него, а также его ответ не учитывает ваши требования, вы хотите, выбранное значение каждого выпадающего и этот текст каждой опции тега не значение, так как ваши опционные метки имеют нет значения, и вы также не используете идентификаторы для своих элементов. Мой ответ отличается и учитывает вашу текущую структуру html. – Sarfraz

+0

'$ ('select [name = year] option: selected'). Text()' такой же, как '$ ('select [name = year]'). Val()', не так ли? Просто, когда не задано значение 'value', но я считаю, что @Nate должен поместить некоторые из его' option '':) 'Я использовал id, потому что довольно часто можно увидеть' select [name = year] 'дважды в одном и том же HTML-документ. – sp00m

0
var mydate = $('input[name=year]').val() + '/' + $('input[name=month]').val() + '/' + $('input[name=day]').val(); 

$('input[name=date]').val(mydate); 
1

ли это на форме представить:

$("#myForm").submit(function() { 
    var value = $("#myYearSelect").val() 
    value += "-" + $("#myMonthSelect").val() 
    value += "-" + $("#myDaySelect").val(); 
    $("#myHiddenInput").val(value); 
}); 
+0

Это имеет смысл ... спасибо! –

1

Попробуйте это.

 <form id="test" method="post"> 
    <select name="month" class="date1"> 
     <option value="01">January</option> 
     <option value="02">February</option> 
    </select> 

    <select name="day" class="date1"> 
    <option value="01">01</option> 
    <option value="02">02</option> 
    </select> 
    <select name="year" class="date1"> 
    <option value="2012">2012</option> 
    <option value="2013">2013</option> 
</select> 
<input type="hidden" name="date" value=""> 
<input type="submit"/> 
</form> 

Смотрите javascript в демонстрации.

try the demo

+0

Это довольно пятно. Спасибо за демонстрацию –

Смежные вопросы