2015-04-15 105 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函數時,這個工作很好,但是當我試圖將這兩個函數結合起來時,就會出現一些錯誤。

相關問題