0

我在 ubercart 有一个结帐表格。为了让我在管理部分显示日历,我需要能够检索用户在完成结帐时选择的游戏日期。

此日历将显示在视图中,但 webform checkout extra 字段不兼容。

作为一个简单的修复,我添加了一个在视图中兼容的额外字段,但我无法为该字段分配日期选择器。

我的问题是,我可以保留原始字段,但是当他们在页面顶部输入日期时,页面底部的隐藏字段也会获得输入的日期吗?

这是页面顶部日期选择器的代码,它是三个选择框和一个日历链接。

<select class="month form-select" id="edit-panes-webform-nid5-0-date-month" name="panes[webform_nid5][0][date][month]"><option value="" selected="selected">Month</option><option value="1">Jan</option><option value="2">Feb</option><option value="3">Mar</option><option value="4">Apr</option><option value="5">May</option><option value="6">Jun</option><option value="7">Jul</option><option value="8">Aug</option><option value="9">Sep</option><option value="10">Oct</option><option value="11">Nov</option><option value="12">Dec</option></select>

<select class="day form-select" id="edit-panes-webform-nid5-0-date-day" name="panes[webform_nid5][0][date][day]"><option value="" selected="selected">Day</option><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option><option value="8">8</option><option value="9">9</option><option value="10">10</option><option value="11">11</option><option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option><option value="20">20</option><option value="21">21</option><option value="22">22</option><option value="23">23</option><option value="24">24</option><option value="25">25</option><option value="26">26</option><option value="27">27</option><option value="28">28</option><option value="29">29</option><option value="30">30</option><option value="31">31</option></select>

<select class="year form-select" id="edit-panes-webform-nid5-0-date-year" name="panes[webform_nid5][0][date][year]"><option value="" selected="selected">Year</option><option value="2013">2013</option><option value="2014">2014</option><option value="2015">2015</option></select>

<input type="image" src="/sites/all/modules/webform/images/calendar.png" class="webform-calendar webform-calendar-start-2013-09-06 webform-calendar-end-2015-09-05 webform-calendar-day-1 hasDatepicker" alt="Open popup calendar" title="Open popup calendar" id="dp1378391293298">

对于底部隐藏的日期值框,我可以输入一个 php 片段。

我不认为有一种简单的方法可以在三个选择框完成后立即打印它们的值?

我尝试了类似...

<?php
  $get_month = $_POST['panes[webform_nid5][0][date][month]'];
  print($get_month);
  $get_day = $_POST['panes[webform_nid5][0][date][day]'];
  print($get_day);
  $get_year = $_POST['panes[webform_nid5][0][date][year]'];
  print($get_year);
?>

但这不起作用,我需要以 DD-MM-YY 格式读取日期

任何人都可以帮忙吗?

4

1 回答 1

1

已编辑 当您在页面上有可用的 jquery 时,这使事情变得更加简单

<script>
  function changeDate() 
  {
    var $ = jQuery; //for some reason $ is not already defined as jQuery
    var date = $('select#edit-panes-webform-nid5-0-date-month').val() 
    + '-' 
    + $('select#edit-panes-webform-nid5-0-date-day').val() 
    + '-' 
    + $('select#edit-panes-webform-nid5-0-date-year').val();

    $('input#edit-panes-billing-address-billing-ucxf-date-of-game').val(date);
  }
</script>

我已经在你的页面上尝试过这个,它在使用选择框时有效,但在不编辑 jquery 日期选择器的情况下不能从弹出日历中工作,这取决于许可证允许你用它做什么

这是假设您的隐藏日期框是 div 或 span 不是输入,如果它是输入更改行

document.getElementById("hidden-date-box-id").innerHtml = month + '-' + day + '-' + year;

document.getElementById("hidden-date-box-id").value = month + '-' + day + '-' + year;

<script>
  function changeDate() 
  {
    var month = document.getElementById("edit-panes-webform-nid5-0-date-month").value;
    var day   = document.getElementById("edit-panes-webform-nid5-0-date-day").value;
    var year  = document.getElementById("edit-panes-webform-nid5-0-date-year").value;

    document.getElementById("hidden-date-box-id").innerHtml = month + '-' + day + '-' + year;
  }
</script>

然后添加onchange="changeDate(); return false;"到您选择的每个 oof

这是未经测试的代码,我很少使用纯 JavaScript,但我很确定它是正确的

于 2013-09-05T14:53:24.277 回答