javascript - 在发布表单之前在输入文本框中显示日期?

标签 javascript php jquery html css

我有这个表单,它通过选择日期范围发布到 PHP 脚本,这是我的 fiddle用于视觉理解。如何根据发布之前选择的单选按钮在空框/输入字段(不允许输入)中显示日期?

提前致谢!

示例:

 I select one month ago:
(  )       (  )     (X)     (  )
1day     1week     1month    3months

-----------------
|2014 - 11 - 01  |   Date From: (the date being selected)
-----------------

-----------------
|2014 - 12 - 01  |  Date: To: (the present day, today)


 ---------
| get aht |  (button)
 ---------

这是我的表格:

<div id="menu_option">
        <h1>Menu Option</h1>
            <div id="button_position">


        <div id="date_selector">    
            <label>Select Date Range</label>
            <form action="show_aht2.php" method="post" id="formtopost">
                    <input type="radio" name="date_selected" value="1d" checked="checked"/>1d
                    <input type="radio" name="date_selected" value="1w" />1w
                    <input type="radio" name="date_selected" value="1m" />1m
                    <input type="radio" name="date_selected" value="3m" />3m
                    <input type="button" id="aht_btn" name="get_aht" value="Get AHT" />
            </form>
  </div><!--date selector-->

                <div class="clear"></div>   

  <button id="refresh_page">Refresh Page</button>

    </div>

CSS:我想在 AHT 按钮之前显示日期框。另外,如何使所有按钮的大小相同?

/*container for all divs inside*/
#container {
width:1450px;   
}

/*map size*/
#map_size{
width:1190px;
height:1300px;
background:#0099FF;
border-style: solid;
border-color: black;
position: relative;
float:left;
}

/*menu bar option*/
#menu_option{
width:230px;
height:600px;
background:#0099FF;
border-style: solid;
border-color: black;
position: relative;
float:right;
overflow:hidden;
text-align:center;
}

input[type="radio"] {
margin-left:10px;
}

#date_selector{
border:3px;
border-color:black;
}

#button_position{
/*width: 100px;
height: 80px
position: absolute;*/
}

#button_position button{
font-weigth:bold;    
font-size:1.3em;
}

button:hover{
cursor: pointer;
}

button {
margin:5px auto; 
font:16px tahoma; /*every size you want.*/
}

/*clear */
.clear {
clear:both;
}

最佳答案

如果您想在发布表单之前显示日期范围,并且希望发布日期,则需要在表单中添加两个 readonly 文本框并使用 javascript 代码下面。

HTML

<input type="text" id="from_date" name="from_date" readonly="readonly" />
<input type="text" id="to_date" name="to_date" readonly="readonly" />

Javascript

<script type="text/javascript">
    function formatDate(d) {
      var dd = d.getDate()
      if ( dd < 10 ) dd = '0' + dd;

      var mm = d.getMonth()+1
      if ( mm < 10 ) mm = '0' + mm;

      var yy = d.getFullYear();
      if ( yy < 10 ) yy = '0' + yy;

      return yy+'-'+mm+'-'+dd;
    }

    function getDateRange(value){
        var now = new Date(),
            y = now.getFullYear(),
            m = now.getMonth(),
            d = now.getDay();

        var diff = {};
        diff['1d'] = 1;
        diff['1w'] = 7;
        diff['1m'] = 30;
        diff['3m'] = 90;
        var from_date = new Date(y, m, d - diff[value]);

        $('#from_date').val(formatDate(from_date));
        $('#to_date').val(formatDate(now));
    }

    $(function(){
        $("input[name=date_selected]").click(function(){
            getDateRange($(this).val());       
        });
        getDateRange($("input[name=date_selected]:checked").val());
    });
</script>

这里是 the working code at JSFiddle .

关于javascript - 在发布表单之前在输入文本框中显示日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27230629/

相关文章:

javascript - addEventListener 是如何工作的?

javascript - 将字符串转换为 boolean 值

php - SQL插入和更新不会更新或插入所有记录,仅记录一些

java - 有完整的eclipse包吗?

javascript - 在 Internet Explorer 11 控制台中执行 JQuery 代码时出现 "You are not currently attached to a supported page or app."错误

jquery - 从许多背景图像中动画化一个背景图像

javascript - 在 React-Redux 的数组中添加一个元素

javascript - 仅显示数组中的一项

javascript - 键入时进行验证、预填充和潜在阻止

javascript - 根据用户在页面上的位置更改 jQuery