#javascript #jquery #html #css #twitter-bootstrap
#javascript #jquery #HTML #css #twitter-bootstrap
Вопрос:
Я новичок в Jquery и изо всех сил пытаюсь получить значения даты из моего элемента ‘span’ в моем коде jquery и хочу опубликовать его вместе с моей формой, используя java script.Причина, по которой мне нужно использовать этот подход, заключается в том, что я пытаюсь использовать средство выбора диапазона дат, предоставленное наhttp://www.dangrossman.info/2012/08/20/a-date-range-picker-for-twitter-bootstrap /
Я понятия не имею, как я могу встроить значение элемента span в свою форму и опубликовать его на другой странице вместе с другими данными формы.
Javscript
<script type="text/javascript">
document.getElementById("btnsubmit").addEventListener("click", function () {
var s;
s=jQuery.data($('aname'),s);
alert(s);
document.form.submit();
});
</script>
ФОРМА:
—
<b class="caret"></b>
<span><?php echo date("F j, Y", strtotime('-30 day')); ?> - <?php echo date("F j, Y"); ?> </span>
</div>
<button id="btnsubmit" onclick="document.getElementById('frmdate').submit();">submit</button>
</form>
Все, что я хочу, это получить значение date из элемента span и опубликовать его вместе с формой, чтобы получить его на следующей странице для фильтрации записей из базы данных на основе этого значения.Я был бы признателен, если бы кто-нибудь мог мне помочь в этом отношении.Спасибо
Комментарии:
1. Это прекрасное сочетание ужасного кода?
2. @adeneo. Не могли бы вы, пожалуйста, объяснить, что с этим не так?
3. Лучше начать с некоторых руководств по Jquery…
4. есть ли причина, по которой вы храните свои данные в span, а не в скрытом поле ввода? Кроме того, рассматриваемый интервал отсутствует в опубликованном вами коде. Также
$('aname')
означает, что вы ищете<aname />
элемент.5. @Ramy. Спасибо. Я обновил свой код. Я хочу использовать средство выбора диапазона данных начальной загрузки, как упоминалось выше. Я пытался использовать скрытое значение, но как только я меняю средство выбора даты, скрытое поле не фиксирует последнее значение datepicker. Итак, просто подумал захватить контейнер элемента «span». Есть ли способ захватить контейнер span?
Ответ №1:
Как я предлагал в скрипке:
<form action="#">
<b class="caret"></b>
<span>14-10-2014</span>
<input type="hidden" name="tt" value="10-10-2014" />
<input id="tt2"/>
<input type="submit"/>
<a href="#" id="submit">submit</a>
<form>
И для Java script:
$(document).on('click', '#submit', function(event) {
event.preventDefault();
alert($("input[name='tt']").val() " - Method 1");
$("#tt2").val($("span").text());
});
$(document).on('submit', 'form', function(event) {
event.preventDefault();
alert($("input[name='tt']").val() " - Method 2");
$("#tt2").val($("span").text());
});
Не забудьте добавить скрипт Jquery.
(При редактировании я включил копию из диапазона)
С наилучшими пожеланиями
Ответ №2:
Я думаю, вы неправильно следовали своему руководству. Вот некоторый код из руководства, и вы заметите, что он помещает данные в поле ввода, которое затем будет автоматически отправлено как данные формы, без добавления jQuery.
<form id="frmdate">
<div class="form-group">
<label for="reservation">Reservation dates:</label>
<div class="controls">
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
<input type="text" name="reservation" id="reservation" />
</div>
</div>
</div>
</form>
<script type="text/javascript">
$(document).ready(function() {
$('#reservation').daterangepicker();
});
</script>
Также в вашем коде вы плохо смешали jQuery и стандартный javascript.
Во-первых, вы прослушиваете нажатие кнопки, а не отправку формы, это означает, что ваш код никогда не будет выполнен, если enter нажимает клавишу Enter и отправляет форму без нажатия кнопки. Более того, это плохая практика только по этим причинам (и по многим другим причинам)
Вот очищенная версия вашего кода:
<form id="frmdate">
...
<b class="caret"></b>
<span id="aname"><?php echo date("F j, Y", strtotime('-30 day')); ?> - <?php echo date("F j, Y"); ?></span>
<button id="btnsubmit" type="sumbit">Submit</button>
</form>
<script type="text/javascript">
$(document).ready(function() {
$('#frmdate').submit(function(){
// Do some code here.
});
});
</script>
Комментарии:
1. Спасибо, но мой вопрос в том, как отправить форму, где значения datepicker находятся в элементе span, А НЕ в элементе формы ввода?:)
2. Элементы Span не отправляются в виде данных формы без дополнительного кода сериализации. Даже если данные выводятся визуально в промежутке, они должны быть продублированы во ввод. Этот ввод может быть скрыт, чтобы пользователь не знал о том, что произошло.