使用 jquery 验证电话号码长度不起作用

validate phone number length using jquery not working

提问人:TBC 提问时间:5/11/2023 更新时间:5/11/2023 访问量:158

问:

我正在尝试使用jQuery验证电话号码长度,当用户开始输入自己时,它应该显示,我做了以下代码:

function validatePhone(phone) {
  if (phone.value.length <= 10 && phone.value.length >= 5) {
    let
    var = 'Yes';
    return var;
  } else {
    let
    var = 'No';
    return var;
  }
}

function validate() {
  let result1 = $("#result1");
  let phone = $("#phone").val();
  result1.text("");


  if (validatePhone(phone)) {
    result1.text(var);
    result1.css("color", "green");
  }
  return false;
}
jQuery(function($) {
  $("#phone").on("input", validate);
});
<input type="number" class="form-control"  id="phone" name="phone">
<span class="label">Phone Number<span style="color:red">*</span> <span id="result1"></span></span>

但是这不起作用,任何人都可以告诉我这里有什么问题,提前致谢

JavaScript jQuery 验证 输入 编号

评论

0赞 CBroe 5/11/2023
首先,您不应该使用关键字作为变量名称var
0赞 CBroe 5/11/2023
其次,您传递了字段包含的,但随后您尝试访问该函数内部,这毫无意义 - 字符串没有属性。validatePhone(phone)phone.valuevalue
0赞 CBroe 5/11/2023
result1.text(var);- 撇开命名问题不谈,该范围内不存在。var

答:

1赞 Kokodoko 5/11/2023 #1

我清理了你的代码,基本上没问题,但你有一些小的语法错误和逻辑错误。我还建议使用标签。如果你愿意,代码可以写得更短!label

function validatePhone(phone) {
  if (phone.length <= 10 && phone.length >= 5) {
    return true;
  } else {
    return false;
  }
}

function validate() {
  let result1 = $("#result1");
  let phone = $("#phone").val();
  result1.text("");


  if (validatePhone(phone)) {
    result1.text("great!");
    result1.css("color", "green");
  } else {
    result1.text("please input phone number");
    result1.css("color", "red");
  }
}

jQuery(function($) {
  $("#phone").on("input", validate);
});

[HTML全

<label for="phone">Phone Number <span style="color:red">*</span></label>
<input type="number" class="form-control" required id="phone" name="phone">
<span id="result1"></span>

我还建议你看看规则!https://developer.mozilla.org/en-US/docs/Web/CSS/:validcss:valid