繁体   English   中英

提交前验证表单字段

[英]Validating form fields before submit

我有来自frmvalidator的此函数,我正在使用它比较两个输入字段。 问题是我有两个必填字段,用户需要填写一个或两个字段,但不能不填写两个输入。

这是我一直在努力的事情:

<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函数,该函数允许填充一个或两个,但不能将其填充为空。

你们可以用这个指导我吗?

我认为这是一个非常简单的验证问题。 单击提交按钮时,我已经调用了验证功能。 您也可以将此称为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;
}}

这是一个演示

您可以使用简单的表单提交处理程序进行自定义验证。 我在下面发布示例代码。

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

如您所要求的,您要在提交表单之前验证表单字段,只需执行以下操作

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

这将在提交表单之前强制对元素进行验证,您将收到验证消息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM