Javascript 字符串长度未定义?

use*_*989 2 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!';
    }
}
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

所发生的情况是,检查该值是否为 null 可以按预期工作,但检查该值的长度却无法正常工作。当我测试这个时发生的情况是字符串长度似乎是undefined. 谁能告诉我出了什么问题吗?干杯!

MrC*_*ode 5

Wellx是一个输入元素,因此您需要使用x.value.lengthnot x.length

if (x.value.length > maximum || x.value.length < minimum) {
Run Code Online (Sandbox Code Playgroud)

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

最小变量也有一个拼写错误。

工作演示