验证2个复选框和2个文本框以及日期格式

时间:2013-12-30 02:26:24

标签: javascript date if-statement

我的目标是检查用户是否输入/选择至少一个选项。如果他没有,则会出现警报。

如果用户输入日期,则会进行验证。

目前,当用户未输入日期但是选择其他选项时,仍会显示日期验证的提示信息。

http://jsfiddle.net/N43vg/1/

OR

以下是我的代码......

帮助将是欣赏..谢谢! :)

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;
        }

1 个答案:

答案 0 :(得分:3)

让你的radio1 and radio2验证是否有任何一个无线电检查你需要编写代码如下: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;
    }