2016-02-26 141 views
0

我有這個功能frmvalidator我正在使用它來比較兩個輸入字段。事情是我得到了2個必需的字段,用戶需要填寫一個或兩個字段,但不能讓兩個輸入不填充。提交前驗證表單域

這裏是我的就是我一直在努力:

<form id="contact_form" action="contact.php" method="POST"> 
    <label>RFC ** </label> 
    <input class="fiscal-input" type="text" name="rfc" placeholder=""> 
    <label> ó CURP **</label> 
    <input class="fiscal-input" type="text" name="curp" placeholder=""> 
</form> 

frmvalidator.addValidation("curp","regexp=^[A-Z]{1}[AEIOU]{1}[A-Z]{2}[0-9]{2}(0[1-9]|1[0-2])(0[1-9]|1[0-9]|2[0-9]|3[0-1])[HM]{1}(AS|BC|BS|CC|CS|CH|CL|CM|DF|DG|GT|GR|HG|JC|MC|MN|MS|NT|NL|OC|PL|QT|QR|SP|SL|SR|TC|TS|TL|VZ|YN|ZS|NE)[B-DF-HJ-NP-TV-Z]{3}[0-9A-Z]{1}[0-9]{1}$","Por favor ingrese un CURP válido."); 
frmvalidator.addValidation("rfc","regexp=^([A-Z,Ñ,&]{3,4}([0-9]{2})(0[1-9]|1[0-2])(0[1-9]|1[0-9]|2[0-9]|3[0-1])[A-Z|\d]{3})$","Por favor ingrese un CURP válido."); 

兩個正則表達式只是控制輸入是某些字母數字。 我需要的是一個javascript函數,它允許填充一個或兩個,但不填充空白。

你們能指導我嗎?

回答

0

您可以使用一個簡單的表單提交處理程序做自定義驗證。我在下面發佈一個示例代碼。

document.getElementById('contact_form').addEventListener('submit', function(e) { 
    var fields = document.querySelectorAll('#contact_form .fiscal-input'); 
    var value = ''; 
    for(var i=0, len = fields.length; i<len; i++) { 
    value = value || fields[i].value; 
    } 
    if(!value) { 
    e.preventDefault(); 
    } 
}); 
0

在我看來,這是一個非常簡單的驗證問題。 我點擊提交按鈕調用驗證函數。你也可以稱之爲onblur。

<form id="contact_form" onsubmit="return validate();" action="contact.php" method="POST"> 

在驗證功能,下面做

validate=function(){ 

alert("called"); 
x=document.getElementById("rfc").value; 
y=document.getElementById("curp").value; 
if(x==""&&y=="") 
return false; 
else 
{ 
alert(x); 
alert(y); 
//Call your validation function here 
return true; 
}} 

這裏是一個DEMO

0

當你問你要驗證表單域提交表單你可以做以下

// fires every time this field changes 
$('your_selector_of_element').on('change', function() { 
    $(this).valid();     // force a validation test on this field 
}); 

之前表單提交之前這將迫使元素上的驗證,您將得到確認消息。