2015-04-15 99 views
-2

我试图在表单提交之前添加验证。还有一个替代输入字段,我们称之为“可选”,并且有复选框“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”之一,“复选框2”,“复选框3”被选中。

+1

请显示html代码来解决问题。 – Noman

+0

那你为什么不添加你想要的条件? – Imran

+0

@Imran我是JS的新手,我不知道如何添加条件来使这个作品。 – user3180931

回答

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

就是这样!但是只有当这三个复选框被选中时,警报才起作用运算符“||”意思是“或”,所以当这个复选框中的一个被选中时,我不知道如何进行提醒工作? – user3180931

+0

比它的&&。或者参见Sameer Sawant的回答。 –

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> 
+0

这是禁用输入字段,我不想禁用此输入,我想添加警报,当有人检查指定的复选框,当他点击提交表单,然后他得到警报“你必须填写可选字段”。 – user3180931

+0

我已根据您的要求更新了我的答案。您可以进一步定制它以适应您的HTML。 –

+0

如果它对您有帮助,请核准这个@ user3180931 –

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

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函数时,这个工作很好,但是当我试图将这两个函数结合起来时,就会出现一些错误。

相关问题