【问题标题】:If input contains anythign other than a letter, show div如果输入包含除字母以外的任何内容,则显示 div
【发布时间】:2017-09-13 11:51:28
【问题描述】:

我有一个简单的名字/姓氏表格。提交时我想检查是否只使用了字母,如果没有,则显示错误 div。

例如:

if ('#input-32' ) {
    /* contains anything other than letters */
    $("#error").show(); 
}

【问题讨论】:

  • 请研究一下jQuery Validator
  • 还请记住:有些名称中包含非字母。还可以考虑检查 ÄÖÜ 或其他特殊字符。

标签: javascript jquery forms


【解决方案1】:

您可以使用正则表达式 - Read More

const input = document.querySelector('#firstname');

input.addEventListener('input', function(e) {
	const val = e.target.value;
	const isLetter = /^[a-zA-Z]+$/.test(val);
	console.log(isLetter);
        // if( isLetter ){ ... }
})
<input type="text" id="firstname">

【讨论】:

    【解决方案2】:

    如果输入包含除字母以外的任何内容,则以下内容应显示错误元素:

    if ($('#input-32').val().match(/[^a-zA-Z]/g)) {
      /* contains anything other than letters */
      $("#error").show(); 
    }
    

    【讨论】:

    • 太棒了。请考虑接受此作为您的答案。
    • 刚刚注意到这仍然允许空格 - 你将如何调整正则表达式来防止这种情况?
    • @Harry 请以jsfiddle.net/g21f8xzt 举例。任何空白字符都会触发错误以按预期显示。
    【解决方案3】:

    $(document).ready(function(){
      $("#error").hide();
      $("#nameField").on("change", function(){
        var nameSub = $('#nameField').val();
        if(/^[a-zA-Z]+$/.test(nameSub)){
          $("#error").hide();
        }
        else{
          $("#error").show();
        }
      });
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    
    <input type="text" name="name" id="nameField"/>
    <div id="error">error</div>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-13
      • 2013-02-27
      • 1970-01-01
      • 2018-01-19
      • 1970-01-01
      • 1970-01-01
      • 2016-01-26
      相关资源
      最近更新 更多