隐藏默认值,除非已触发

时间:2018-05-17 14:58:39

标签: javascript

image我有2个日期,开始日期和结束日期。 如果结束日期是1/1/2018,那么默认情况下的开始日期总是比结束日期大1天,即在这种情况下为1/2 / 2017。我试图将输入设置为开始日期不可见但自动结束日期为+1天。但是,用户可以将其更改为他们想要的任何日期。我试图隐藏该字段,除非选择了一个值。

这是我到目前为止所尝试的内容。

我为日期设置了标签。我尝试设置type =“hidden”,但我并不是真的试图隐藏字段,而只是隐藏输入直到它被选中。用户仍然可以在没有选择开始日期的情况下运行页面。

<label3>Start of Lease </label3> <input  id="startDate"  type="date" ><br/>
        </br>
        <label3>End of Lease</label3>  <input id="endDate" onchange="PopulateRentPaymentDates()" type="date" > <br/>
        </td>

在这里,我将其设置为如果用户未选择日期,则结束日期为+1。

 if (document.getElementById("startDate"))
    stDate = document.getElementById("startDate").value;
else stDate = document.getElementById("startDate").value = getCurrentDay(sDate);

这是我对开始日期的计算。

var endDate = document.getElementById("endDate").value;
if (endDate){
var etDate = new Date(endDate);
var eDay = etDate.getUTCDate()+1;
var eMonth = etDate.getUTCMonth()+1;
var eYear = etDate.getUTCFullYear()-1;
var sDate = eYear + "-" + eMonth + "-" + eDay;


        if (stDate == null)
    {
        sDate.setMonth(sDate.getDay() - parseInt(paymentDays));
    }

这是我试图隐藏的输出。此代码适用于计算,但我试图隐藏输出,除非用户实际选择了日期。有没有办法让输出以任何方式隐藏?任何帮助将不胜感激。谢谢。

if (document.getElementById("startDate"))
        document.getElementById("startDate").value = getCurrentDay(sDate);

1 个答案:

答案 0 :(得分:1)

我认为这可能是您的CSS的问题。以下是在选择结束日期之前隐藏输入的示例。

HTML

CREATE TABLE ref_data (
  col1 INT NOT NULL,
  col2 INT NOT NULL,
  INDEX (col1),
  UNIQUE KEY (col2)
) ENGINE=INNODB;

CREATE TABLE constraint_table (
  id int NOT NULL auto_increment,
  col1 int NOT NULL,
  col2 int NOT NULL,
  PRIMARY KEY (id),
  CONSTRAINT cn_col FOREIGN KEY (col1,col2)
REFERENCES ref_data (col1,col2)
ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=INNODB;

的JavaScript

<label3>Start of Lease </label3> 
<input  id="startDate"  type="date" hidden >
<br/>

<label3>End of Lease</label3>  
<input id="endDate" type="date" >

https://jsfiddle.net/6fg6u1a2/3/

请告诉我这是你的想法吗?