我在使用我的javascript函数时遇到问题。会发生什么情况是验证表单字段,如果通过单独的div不正确,则会显示错误。
使用Javascript:
function validatestr(id,max,min) {
var maximum = parseInt(max);
var minmum = parseInt(min);
var div = document.getElementById(id+'_error');
var x = document.getElementById(id);
div.innerHTML = '';
if (x.value == null || x.value == '') {
div.innerHTML = 'Value must not be null!';
}
if (x.length > maximum || x.length < minimum) {
div.innerHTML = 'Value must be between '+minimum+' and '+maximum+' chars!';
}
}
HTML:
<input type="text" class="textbox" id="varchar" name="varchar" onblur="validatestr('varchar',100,10)">
<div style="display:inline;color:#ff0000;font-weight:bold" id="varchar_error"></div>
如果检查值为null,则会按预期工作,但检查值的长度不能正常工作。测试时会发生什么,字符串长度似乎是undefined
。任何人都可以告诉我什么是错的?
干杯!
答案 0 :(得分:3)
好x
是输入元素,因此您需要使用x.value.length
而不是x.length
。
if (x.value.length > maximum || x.value.length < minimum) {
DOM元素没有长度属性,您需要值的长度属性,因为value是一个字符串。
最小变量中也有拼写错误。
<强> Working demo 强>