下拉列表验证选值不为空如何实证

来源:百度知道 编辑:UC知道 时间:2024/06/04 11:16:38
出生日期年、月、日三个下拉列表选项,只要其中一个没有选择,将不能通过验证。代码如何实现?下面是我的错的代码。下拉列表属性中有焦点项吗?

if (document.form_basic.byear.value=="" ||document.form_basic.bmonth.value==""||document.form_basic.bday.value=="") {
alert("请选择您的出生日期!");
addnew.byear.focus();
return (false);
}
用下拉列表是为了某些懒人不愿意输入
当是空值时,我写的条件可以检测出来,但是回不去错误页面,而是直接往下走了。我的问题是,怎么返回到那个空值的选框而不往下走
数据库里是一个日期型字段,所以在三个选框的后面还有一个隐形的选框把他们的值串到了一起。如果有一个没选的话,往数据库里写时会类型不匹配

做个选框并不实用。
试试这个:

//校验日期的合法性,当通过时返回对应的日期对象
function checkDate(dateStr)
{
// 定义日期格式的正则表达式
var reg = /^(\d{4,4})\-(\d{1,2})\-(\d{1,2})$/;

// 尝试匹配
var r = dateStr.match(reg);

if(r == null) {
// 未匹配成功
return null;
}

// 设置月份,范围为 0 - 11,因此这里要减1
r[2] = r[2] - 1;

// 根据匹配的年,月,日构造日期对象
var d = new Date(r[1], r[2], r[3]);

// 将此日期对象的年,月,日与原值对照,若有不匹配的即说明不是正确的日期格式.
if (d.getFullYear() != r[1]) return null;
if (d.getMonth() != r[2]) return null;
if (d.getDate() != r[3]) return null;
return d;
}

var birthday=/^(19|20)\d{2}-\d{1,2}-\d{1,2}$/;
if(!birthday.exe(form_basic.birthday.value||!checkDate(form_basic.birthday.value))){
alert("生日错误!");
form_basic.birthday.focus();
return false;
}

<input name="birthday" type="text" id="b