html输入文本:禁用完整的大写数字

时间:2016-11-07 14:56:38

标签: javascript jquery html html5

在表单中,我有一个简单的输入文本字段,用户可以在其中插入标题。

<input type="text" name="title_input" id="title_input" value="" />

我不希望用户可以插入一个完整的大写数字。

我想禁用这样的数字:

  • LOREM IPSUM DOLOR SIT

想要启用这样的数字:

  • Lorem ipsum dolor坐
  • Lorem ipsum 16V dolor C4坐
  • Lorem ipsum dolor坐在Amet

我已经知道将所有文本转换为小写的方法,但不是我想要的。

<input type="text" onkeyup="this.value=this.value.toLowerCase();" name="title_input" id="title_input" value=""  />

<input type="text" pattern="[a-z]+" title="only lowercase" name="title_input" id="title_input" value=""  />

如果我键入“LOREM IPSUM 16V DOLOR C4 SIT”,我会想要将所有字符转换为小写,如下所示:

  • lorem ipsum 16v dolor c4 sit

但我想转换成这个:

  • Lorem ipsum 16V dolor C4坐

我可以使用html5 javascript或jquery进行此验证。 怎么做?

-

谢谢Vasil, 这不是我想要的,但如果标题是完整的大写,它可以是显示错误消息的有用替代。

function validateForm() {
    var titleEl = document.getElementById('title_input');
  var title = titleEl.value;
  var upperLength = 0;
  var Ncount = 0;
  var CharCount = 0;

  for (var i = 0; i < title.length; i++) {
    if( isNaN(title[i]) ){
    upperLength += (title[i] === title[i].toUpperCase() ? 1 : 0);
    }else{ Ncount = Ncount + 1; }
  }

  CharCount = title.length - Ncount;

  if (upperLength === CharCount) {
    alert('Invalid title');
    return false;
  }

  return true;
};

那么单词呢,请检查大写单词?

必须返回错误的错误标题:

  • “出售iPAD新”

  • “出售CITROEN C4 NEW”

1 个答案:

答案 0 :(得分:0)

jsfriddle

<form onsubmit="return validateForm()">
  <input type="text" value="" id="title_input" />
  <input type="submit"  />
</form>


<script>
function validateForm() {
    var titleEl = document.getElementById('title_input');
  var title = titleEl.value;
  var upperLength = 0;

  for (var i = 0; i < title.length; i++) {
    upperLength += (title[i] === title[i].toUpperCase() ? 1 : 0);
  }

  if (upperLength === title.length) {
    alert('Invalid title');
    return false;
  }

  return true;
};
</script>