使用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!");
}
// …
现在当我:
222
或aa
,我收到错误消息第二次尝试
// …
} 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!");
}
// …
现在当我:
222
或aa
,我收到错误消息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验证。
答案 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();
}
}
同样,我不知道正则表达式的作用,所以我认为它是正确的。