文本框's的length属性在JQuery中从不返回0

Textbox's length property never return 0 with JQuery

本文关键字:JQuery 返回 属性 length 文本      更新时间:2023-12-09

我想知道为什么在使用JQuery获取文本框时,文本框的长度属性从不返回0。即使文本框为空,$(element).length也不会返回0。

假设我们有这个代码:

<input id="Text1" type="text" />
$(function () {            
    alert($('#Text1').length);
    var textBox1 = document.getElementById("Text1");
    alert(textBox1.value.length);
    $('#Text1').on('input', function() {
        alert($('#Text1').length);
        var textBox1 = document.getElementById("Text1");
        alert(textBox1.value.length);
    });
}); 

JS Fiddle here

您可以看到,$('#Text1').length从不返回0。使用纯javascript,当文本框为空时,它将返回0。

为什么?

您需要使用.val()获取文本框的值。$(element).length将返回$(element)中存在的对象数的长度,在您的情况下为1:

 $(element).val().length

工作演示