无法在jquery中正确验证

时间:2016-07-18 20:07:36

标签: javascript jquery

我正在jquery验证来自用户的输入。如果输入为空,则返回false并且不运行jquery代码,如果它包含某些文本,则运行jquery代码。 这是一个例子 -

function sendm() {
    var valid;
    valid = sendmval();
    if (valid) {
        //jquery code
    }
}

function sendmval() {
    var valid = true;
    if (!$('#message').val()) {
        valid = false;
    } else {}
    return valid;
}

这很好用。但是,当用户仅输入blank spaces时会出现问题,从而导致即使在空白输入上也运行jquery代码。我该如何防止这种情况?

2 个答案:

答案 0 :(得分:4)

由于spaces计为字符,因此您必须使用Jquery的$.trim(),如下所示: -

if (!$.trim($('#message').val())) {
        valid = false;
}

更多参考: -

https://api.jquery.com/jQuery.trim/

答案 1 :(得分:3)

由于空格也是一个字符,因此简单地使用Javascript字符串的.trim()函数来删除开头和结尾的空格。然后像往常一样继续检查。

注意:我已经改变了:

if (!$('#message').val())

if (!$('#message').val().trim())

查看完整的工作代码测试:

function sendm() {
  var valid;
  valid = sendmval();
  if (valid) {
    alert("valid & sendm");
  }
}

function sendmval() {
  var valid = true;
  if (!$('#message').val().trim()) {
    valid = false;
  } else {}
  return valid;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="message">
<button onclick="sendm()">CHECK</button>