Javascript字符串长度未定义

Javascript string length undefined?

本文关键字:未定义 字符串 Javascript      更新时间:2023-09-26

我有问题得到我的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。谁能告诉我哪里不对吗?干杯!

x是一个输入元素,所以你需要使用x.value.length而不是x.length

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

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

最小变量中也有一个错别字。

演示工作