我有4 textboxes
日期,每个textbox
有dropdownlist
时间。
现在我想要的是,
对于每个文本框,日期可以相同,但所有下拉列表中的时间不应相等。
代表: -
如果在每个文本框中日期为
textbox1: 08/02/2016
textbox2: 08/02/2016
textbox3: 08/02/2016
textbox4: 08/02/2016
时间不应该相同,应该是
ddl1 = 9.00
ddl2 = 10.00
ddl3 = 11.00
ddl4 = 12.00
我尝试的内容如下: -
function ValidateRecord() {
var StrPriError = "";
if (document.getElementById('TextBox1').value == document.getElementById('TextBox2').value || document.getElementById('TextBox3').value || document.getElementById('TextBox4').value) {
if (document.getElementById('DrpTime').value == document.getElementById('DrpTime3').value || document.getElementById('DrpTime4').value || document.getElementById('DrpTime5').value) {
StrPriError += "Dates and Time for RA Reminder cannot be same";
}
}
if (StrPriError != "") {
alert(StrPriError);
return false;
}
else {
return true;
}
}
但即使添加不同的时间也无法正常工作。请建议
另外,请参阅HTML的屏幕截图
更新
日期格式为dd/MM/yyyy
答案 0 :(得分:0)
你检查时间的方式是错误的。此外,如果您需要检查,则需要将所有这些检查为Date
对象。
所以你需要这样做,假设这些是你的日期文本框:
TextBox1
TextBox2
TextBox3
TextBox4
时间是:
DrpTime
DrpTime3
DrpTime4
DrpTime5
现在,您需要创建四个Date
个对象,其中包含两者的日期和时间。所以说:
var dt1 = new Date(document.getElementById('TextBox1').value + " " + document.getElementById('DrpTime').value);
var dt2 = new Date(document.getElementById('TextBox2').value + " " + document.getElementById('DrpTime3').value);
var dt3 = new Date(document.getElementById('TextBox3').value + " " + document.getElementById('DrpTime4').value);
var dt4 = new Date(document.getElementById('TextBox4').value + " " + document.getElementById('DrpTime5').value);
现在你需要比较是否有这两种方式,你会得到6个比较:
dt1.getTime() == dt2.getTime()
dt1.getTime() == dt3.getTime()
dt1.getTime() == dt4.getTime()
dt2.getTime() == dt3.getTime()
dt2.getTime() == dt4.getTime()
dt3.getTime() == dt4.getTime()
因此,无效值的if
条件为:
if (dt1.getTime() == dt2.getTime() || dt1.getTime() == dt3.getTime() || dt1.getTime() == dt4.getTime() || dt2.getTime() == dt3.getTime() || dt2.getTime() == dt4.getTime() || dt3.getTime() == dt4.getTime())
// Error
扩展版(仅限演示版)为:
if (
dt1.getTime() == dt2.getTime() || dt1.getTime() == dt3.getTime() || dt1.getTime() == dt4.getTime() ||
dt2.getTime() == dt3.getTime() || dt2.getTime() == dt4.getTime() ||
dt3.getTime() == dt4.getTime()
)
// Error
我们正在比较所有日期,所以即使一个条件为真,即使一个日期也等于另一个日期,你就会得到,那么你需要告诉用户这是一个错误。
确保文本框中的日期值格式为:
YYYY/MM/DD
如果没有,这将无效。
工作代码段
label {display: block;}
Dates
<label>Date 1: <input type="date" id="TextBox1"></label>
<label>Date 2: <input type="date" id="TextBox2"></label>
<label>Date 3: <input type="date" id="TextBox3"></label>
<label>Date 4: <input type="date" id="TextBox4"></label>
Times
<label>Time 1: <input type="text" id="DrpTime"></label>
<label>Time 2: <input type="text" id="DrpTime3"></label>
<label>Time 3: <input type="text" id="DrpTime4"></label>
<label>Time 4: <input type="text" id="DrpTime5"></label>
<button onclick="calc8();">Calculate</button>
<script>
function calc8() {
var dt1 = new Date(document.getElementById('TextBox1').value + " " + document.getElementById('DrpTime').value);
var dt2 = new Date(document.getElementById('TextBox2').value + " " + document.getElementById('DrpTime3').value);
var dt3 = new Date(document.getElementById('TextBox3').value + " " + document.getElementById('DrpTime4').value);
var dt4 = new Date(document.getElementById('TextBox4').value + " " + document.getElementById('DrpTime5').value);
if (dt1.getTime() == dt2.getTime() || dt1.getTime() == dt3.getTime() || dt1.getTime() == dt4.getTime() || dt2.getTime() == dt3.getTime() || dt2.getTime() == dt4.getTime() || dt3.getTime() == dt4.getTime())
// Error
alert("Equal Times Detected");
else
alert("Good to go!");
}
</script>
<强>说明强>
1:00
,2:00
,3:00
,4:00
)。