选中复选框时,表单验证空字段

时间:2015-04-15 10:41:45

标签: javascript php jquery html forms

我正在尝试在表单提交之前添加验证。还有一个替代输入字段,我们称之为“可选”,其复选框为“Checkbox1”,“Checkbox2”,“Checkbox3”。当用户从此复选框中选择一个时,他必须填写输入“可选”,如果它是空的,则他无法提交表单并获得一些带有信息的弹出警报以填充此内容。

我有这样的事情:

<script>
function validateForm() {
    var x = document.forms["form"]["nrumowy"].value;
    if (x == null || x == "") {
        alert("Numer umowy musi zostać uzupełniony.");
        return false;
    }
}
</script>

但是这个输入字段“nrumowy”必须在所有情况下填充,所以一切都好,现在我想添加一些类似的东西,但只有当“Checkbox1”,“Checkbox2”,“Checkbox3”中的一个被选中时。

4 个答案:

答案 0 :(得分:3)

以下代码将在填写表单时立即生效。

jquery代码

<script>
function validateForm() {
    var x = document.forms["form"]["nrumowy"].value;
    if (x == null || x == "") {
        alert("Numer umowy musi zostać uzupełniony.");
        return false;
    }
    var op = document.forms["form"]["optional"].value;
    if ($("input[type=checkbox]:checked").length === 0 && op==""){
        alert("you must fill Optional field");
        return false;
    }
}
</script>

答案 1 :(得分:2)

如果要添加类似的内容,但仅在选中“Checkbox1”,“Checkbox2”,“Checkbox3”之一时才添加。然后看看以下代码是否对您有帮助。

function validateForm() {
  
  if(document.getElementById("Checkbox1").checked  ||
     document.getElementById("Checkbox2").checked  ||
     document.getElementById("Checkbox3").checked  ||
     {
    
    var x = document.forms["form"]["nrumowy"].value;
    if (x == null || x == "") {
        alert("Numer umowy musi zostać uzupełniony.");
        return false;
    }
     
     }
}

答案 2 :(得分:1)

您应该在此之前获取这些复选框的值,如果未选中其中一个,则退出该函数。

function validateForm() {
    var frm = document.forms["form"];
    if (!frm["Checkbox1"].checked && !frm["Checkbox2"].checked && !frm["Checkbox3"].checked) return;

    var x = frm["nrumowy"].value;
    if (x == null || x == "") {
        alert("Numer umowy musi zostać uzupełniony.");
        return false;
    }
}

答案 3 :(得分:0)

好的,谢谢你的回答,我现在得到了这个:

<script>
function validateForm() {
    var frm = document.forms["form"];
    if (!frm["check_list1"].checked && !frm["check_list2"].checked && !frm["check_list3"].checked) return;

    var x = frm["tematyka"].value;
    if (x == null || x == "") {
        alert("Tematyka artykułu musi zostać uzupełniona.");
        return false;
    }


}
</script>
<script>
function validateForm2() {
var x2 = document.forms["form"]["nrumowy"].value;
    if (x2 == null || x2 == "") {
        alert("Numer umowy musi zostać uzupełniony.");
        return false;
    }
}
</script>

HTML:

<form name="form" method="POST" action="preview.php" onsubmit="return (validateForm() & validateForm2());">

警报有效,但在用户点击确定后,他会进入preview.php页面。如果只有一个onsubmit函数,那么这很好用,但是当我尝试将这两个函数结合起来时,会出现一些错误。