Извлечение данных из элемента div и отправка их с помощью post с помощью JQUERY

#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 не отправляются в виде данных формы без дополнительного кода сериализации. Даже если данные выводятся визуально в промежутке, они должны быть продублированы во ввод. Этот ввод может быть скрыт, чтобы пользователь не знал о том, что произошло.