我的目标是检查用户是否至少输入/选择了一个选项。如果他不这样做,则会出现警报。
如果用户输入日期,将进行验证。
现在,当用户不输入日期但选择其他选项时,日期验证的警告消息仍然出现。
或
下面是我的代码...
帮助将不胜感激..谢谢! :)
var radio1 = document.getElementById('pending').checked;
var radio2 = document.getElementById('completed').checked;
var on = document.forms["searchform"]["order"].value;
var date = document.forms["searchform"]["date"].value;
if ((radio1 == "") && (radio2 == "") && (on == null || on=="") && (date == null || date =="")){
alert('Please Choose at least 1 Option');
return false;
}
if (date != null || date != "")
{
var pattern = /^(((0[1-9]|[12]\d|3[01])\/(0[13578]|1[02])\/((19|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)\/(0[13456789]|1[012])\/((19|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])\/02\/((19|[2-9]\d)\d{2}))|(29\/02\/((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$/;
if(!(pattern.test(date)))
{
alert("Please enter the correct date format DD/MM/YYYY");
return false;
}
最佳答案
为了让您的 radio1 and radio2
验证 radio 是否被检查,您需要像这样编写代码:if ((!radio1) && (!radio2){}
,因为 radio1 和 radio2 中的值将是 true 或 false,而不是字符串值。
我会像下面的代码一样编写整个脚本,不需要空检查。
if ((!radio1) && (!radio2) && (on ==="") && (date ==="")){
alert('Please Choose at least 1 Option');
return false;
}
if (date !== "")
{
var pattern = /^(((0[1-9]|[12]\d|3[01])\/(0[13578]|1[02])\/((19|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)\/(0[13456789]|1[012])\/((19|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])\/02\/((19|[2-9]\d)\d{2}))|(29\/02\/((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$/;
if(!(pattern.test(date)))
{
alert("Please enter the correct date format DD/MM/YYYY");
return false;
}
关于javascript - 验证 2 个复选框和 2 个文本框以及一种日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20832480/