2017-04-02 45 views
0

驗證日期字段的函數未在下方執行onBlur。我不確定我在這裏錯過了什麼。只是試圖測試一個簡單的驗證。JavaScript未在Blur上運行

<div class="cell"> 
    <label>DOB</label><br>  
    <input id="dob" type="text" placeholder="01/01/1980" onBlur="checkForm(this.value);"> 
    </div> 


    <script type="text/javascript"> 


function checkForm(form) 
{ 
// regular expression to match required date format 
re = /^\d{1,2}\/\d{1,2}\/\d{4}$/; 

if(form.dob.value != '' && !form.dob.value.match(re)) { 
    alert("Invalid date format: " + form.dob.value); 
    form.dob.focus(); 
    return false; 
} 



alert("All input fields have been validated!"); 
return true; 
} 

+0

哪裏是你的'form.starttime'和'form.startdate'?你傳入'this.value',它不會給你表單元素,而只是輸入字段的值。 – mineralwasser

+0

你能否提供所有相關的代碼,'startdate'和'starttime'似乎是對象的一部分,但傳遞給函數的參數是單個輸入的值。 –

+0

好的,我更新了功能。我沒有在函數中正確指定「dob」的ID嗎? – neo

回答

1
<div class="cell"> 
    <label>DOB</label><br>  
    <input id="startdate" type="text" placeholder="01/01/1980" onblur="checkForm()"> 
    <script> 
    function checkForm() 
{ 
// regular expression to match required date format 
re = /^\d{1,2}\/\d{1,2}\/\d{4}$/; 
var date = document.getElementById("startdate").value; 
alert(date); 
if(date != '' && !date.match(re)) { 
    alert("Invalid date format: " + date); 
    date.focus(); 
    return false; 
} 
alert("All input fields have been validated!"); 
return true; 
} 
    </script> 
    </div> 
+0

試試這個..你的函數缺少開始時間,所以你需要指定它,然後嘗試驗證。這段代碼用於驗證有效格式的日期字符串。 – LearningEnthu