使用jquery

时间:2018-01-21 18:49:32

标签: php jquery

使用JQuery,如果存在输入字段值,我想验证非必需的输入字段。

值允许在DB中使用null

<input type="text" class="form-control" name="moms_md_name" id="moms_md_name" value="">

使用JQuery

var mom_maiden_name = $('#moms_md_name').val();

第一次尝试

// …
} else if (maiden_name !== '' && maiden_name !== null) {
  if (!maiden_name.match(/^(?=.*[a-z]).{3,20}$/)) {
    alert("Mother maiden name not properly entered!");
  }
// …

现在当我:

  • 将该字段留空/空,它有效,我得到结果
  • 禁用JQuery验证我也得到了结果
  • 输入错误的输入,例如222aa,我收到错误消息
  • 输入正确的输入,我得不到任何结果&lt; - ?

第二次尝试

// …
 } else if(maiden_name !== '' && maiden_name !== null){
   if (
      $('#moms_md_name').val()
      && !mom_maiden_name.match(/^(?=.*[a-z]).{3,20}$/)) {
          alert("Mother maiden name not properly entered!");
   }
// …

现在当我:

  • 将该字段留空/空,它有效,我得到结果
  • 禁用JQuery验证我也得到了结果
  • 输入错误的输入,例如222aa,我收到错误消息
  • 输入正确的输入,我得不到任何结果&lt; - ?

PHP - 寻找下面的等价物(禁用测试)

// …
else if(!empty($_POST['moms_md_name'])) {
  if (
    isset($_POST['moms_md_name'])
    && !preg_match('%^[A-Za-z\.\' \-]{2,30}$%', $_POST['moms_md_name'])
    ) {
        echo "Mother maiden name need to be properly entered!";
        exit();
    }
}
// …

指定有效值不会给出消息/控制台日志 虽然我可以禁用JQuery并启用PHP验证。

1 个答案:

答案 0 :(得分:0)

我将从您的Javascript代码开始:

    else if (maiden_name !== '' && maiden_name !== null) {
      if (!maiden_name.match(/^(?=.*[a-z]).{3,20}$/)) {
         alert("Mother maiden name not properly entered!");
   }

首先,您应该验证值是否为空,然后执行代码:

var mom_maiden_name = $('#moms_md_name').val();
if (mom_maiden_name  == '' || mom_maiden_name.match(/^(?=.*[a-z]).{3,20}$/)) {
    //Validation passed 
} else {
    //Validation failed again
}

我不确定正则表达式应该做什么,但我认为它是正确的。

其次,看看你的PHP代码,我看到了错误的验证。如果您首先检查一个值是否为空,您可以自动确定它已设置。如果你想保留你的代码,你应该在'if'中反转这两个条件:

if(isset($_POST['moms_md_name'])) {
   if (!empty($_POST['moms_md_name']) && !preg_match('%^[A-Za-z\.\' \-]{2,30}$%', $_POST['moms_md_name'])) {
      echo "Mother maiden name need to be properly entered!";
      exit();
   }
} 

同样,我不知道正则表达式的作用,所以我认为它是正确的。