在表单中,我有一个简单的输入文本字段,用户可以在其中插入标题。
<input type="text" name="title_input" id="title_input" value="" />
我不希望用户可以插入一个完整的大写数字。
我想禁用这样的数字:
想要启用这样的数字:
我已经知道将所有文本转换为小写的方法,但不是我想要的。
<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”,我会不想要将所有字符转换为小写,如下所示:
但我想转换成这个:
我可以使用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”
答案 0 :(得分:0)
<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>