Javascript字符串长度未定义?

时间:2014-06-13 17:49:58

标签: javascript string

我在使用我的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。任何人都可以告诉我什么是错的? 干杯!

1 个答案:

答案 0 :(得分:3)

x是输入元素,因此您需要使用x.value.length而不是x.length

if (x.value.length > maximum || x.value.length < minimum) {

DOM元素没有长度属性,您需要值的长度属性,因为value是一个字符串。

最小变量中也有拼写错误。

<强> Working demo