我正在尝试验证我的出生日期。
基本上,当输入第一个和第二个Dob时,它可以正常工作,但是在最后一个选择年份中,它验证不起作用并返回true。
代码如下:
conda install -c conda-forge xgboost
function dobvalidation()
{
var dob1=document.getElementById('dob_input1').value;
var dob2=document.getElementById('dob_input2').value;
var dob3=document.getElementById('dob_input3').value;
if(dob1=='' || dob1==null && dob2=='' || dob2==null && dob3=='' || dob3==null)
{
document.getElementById('headerErrorBox').style.display='block';
document.getElementById('top-dob').style.display='block';
document.getElementById('dob_error_msg').style.display='block';
document.getElementById('below_error_dob_msg').style.display='block';
document.getElementById('dob_icon').style.marginLeft='-58px';
document.getElementById('dob_success_msg').style.display='none';
return false;
}
}
答案 0 :(得分:1)
将您的最后一个<select>
标签名称<select name="dob_day"...
更改为<select name="dob_year"...
或<select name="whatever_you_want_to_name_it"...
,但与第一个{{1 }}标签。
编辑:
根据您的JS函数,这将在最后一个name=""
标签中返回一个空值错误。
<select>
用<select>
答案 1 :(得分:0)
您的条件应具有 OR 而不是 AND ,这样,如果不存在任何值,则应返回false。
function dobvalidation()
{
var dob1=document.getElementById('dob_input1').value;
var dob2=document.getElementById('dob_input2').value;
var dob3=document.getElementById('dob_input3').value;
if(dob1=='' || dob1==null || dob2=='' || dob2==null || dob3=='' || dob3==null)
{
document.getElementById('headerErrorBox').style.display='block';
document.getElementById('dob_success_msg').style.display='none';
return false;
}
}
<div id="headerErrorBox" style="display: none;">Error!</div>
<div id="dob_success_msg" style="display: none;">Success!</div>
<select name="dob_day" onchange="return dobvalidation()" id="dob_input1" class="frmSelect" autocomplete="off" style="width: 30%;">
<option>DD</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">so on.. to 30</option>
</select>
<select name="dob_mm" onchange="return dobvalidation()" id="dob_input2" class="frmSelect" autocomplete="off" style="width: 25%">
<option>MM</option>
<option value="January">January</option>
<option value="Febuary">Febuary</option>
<option value="March">so on. untill dec</option>
</select>
<select name="dob_day" onchange="return dobvalidation()" id="dob_input3" class="frmSelect" autocomplete="off" style="width: 30%;">
<option value="">YY</option>
<option value="2000">2000</option>
<option value="1999">1999</option>
<option value="1998">1998</option>
<option value="1997">1997</option>
</select>
答案 2 :(得分:0)
我缺少选择DD和MM中的值,因此它不起作用。
function dobvalidation()
{
var dob1=document.getElementById('dob_input1').value;
var dob2=document.getElementById('dob_input2').value;
var dob3=document.getElementById('dob_input3').value;
if(dob1=='' || dob1==null , dob2=='' || dob2==null, dob3=='' || dob3==null)
{
document.getElementById('headerErrorBox').style.display='block';
document.getElementById('top-dob').style.display='block';
document.getElementById('dob_error_msg').style.display='block';
document.getElementById('below_error_dob_msg').style.display='block';
document.getElementById('dob_icon').style.marginLeft='-58px';
document.getElementById('dob_success_msg').style.display='none';
return false;
}
}
<div id="headerErrorBox" style="display: none;">Error!</div>
<div id="dob_success_msg" style="display: none;">Success!</div>
<select name="dob_day" onchange="return dobvalidation()" id="dob_input1" class="frmSelect" autocomplete="off" style="width: 30%;">
<option value=''>DD</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">so on.. to 30</option>
</select>
<select name="dob_mm" onchange="return dobvalidation()" id="dob_input2" class="frmSelect" autocomplete="off" style="width: 25%">
<option value=''>MM</option>
<option value="January">January</option>
<option value="Febuary">Febuary</option>
<option value="March">so on. untill dec</option>
</select>
<select name="dob_day" onchange="return dobvalidation()" id="dob_input3" class="frmSelect" autocomplete="off" style="width: 30%;">
<option value="">YY</option>
<option value="2000">2000</option>
<option value="1999">1999</option>
<option value="1998">1998</option>
<option value="1997">1997</option>
</select>