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);
答案 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/
请告诉我这是你的想法吗?