У меня есть следующая форма:
<form action="" method="POST" name="form" id="form">
<input name="year" type="text" id="year" placeholder="YYYY" size="4" maxlength="4">
<input name="month" type="text" id="month" placeholder="MM" size="2" maxlength="2">
<input name="day" type="text" id="day" placeholder="DD" size="2" maxlength="2">
<input name="hour" type="text" id="hour" placeholder="HH" size="2" maxlength="2">
<input name="minutes" type="text" id="minutes" placeholder="MM" size="2" maxlength="2">
<input name="seconds" type="text" id="seconds" placeholder="SS" size="2" maxlength="2">
<input name="sampleduration" type="text" id="sampleduration" size="4" maxlength="4">
<input type="hidden" name="sample" id="sample">
<input type="submit" name="submit" id="submit" value="Mark as reviewed">
</form>
Перед отправкой формы я хотел бы объединить некоторые поля формы и представить их в виде строки.
Строка должна выглядеть примерно так: "2014-12-03 23:43:12"
Строка представляет собой конкатенацию отдельных полей формы выше.
Я создал скрытое поле формы "sample", чтобы я мог привязать конкатенированную строку к скрытому полю формы до отправки формы.
После отправки формы php/mysql берет верх и вставляет форму в базу данных mysql.
Код jQuery, который у меня выглядит, выглядит следующим образом:
<script>
$( "#form" ).submit(function( event ) {
$('#sample').val(year+'-'+month+'-'+day+' '+hour+':'+minutes+':'+seconds); });
</script>
Мой код jQuery не работает. Может ли кто-нибудь объяснить, почему?
В Javascript вы не можете получить доступ к переменным без их создания. jQuery - это всего лишь куча библиотек кода, написанных на Javascript, и это очень полезно.
То, что вы пытаетесь сделать, - это год доступа year, etc...
Не указав Javscript, что эти переменные существуют.
Что вам нужно сделать, это var year;
сначала сообщает Javascript, что эти переменные существуют, чтобы на них можно было ссылаться в вашем коде.
Здесь ссылка на образец кода, который делает то, что вы хотите. Посмотрите на комментарии в коде, чтобы понять, что делает каждая часть.
Проверьте JS Fiddle с функциональным примером кода. Все, что вам нужно сделать, это установить значение скрытой строки в final_output
.
Надеюсь, поможет!
ваш код должен быть в блоке $ (document).ready, чтобы прослушивать ваше событие отправки - вот так:
<script type="text/javascript">
$(document).ready(function () {
$("#form").submit(function (event) {
alert('submit is fired!');
});
});
</script>
надеюсь, следующая страница вам поможет: нажмите здесь
Не используйте переменные как есть. т.е. год и т.д.
Оберните год, месяц и т.д. С помощью $('#'+idOfElement).val()
Также оберните свой код $(document).ready()
если вы вызываете скрипт перед созданием DOM.
Следуя от Амита, ответьте на пример.
$(document).ready(function () {
$("#form").submit(function (event) {
var concatVals = $('#year').val()+'-'+$('#month').val()+'-'+$('#day').val()+'-'+$('#hour').val()+':'+$('#minutes').val()+':'+$('#seconds').val();
$('#representativeSampleLocation').val(concatVals);
});
});
year
,month
и т. д.