string.length возвращает неопределенное значение? - PullRequest
2 голосов
/ 06 марта 2012
function checkInputData() {
    $('.mainSearchSubmit').live('click', function () {
        var inputData = $(this).parent().children().eq(0).val();
        console.log(inputData.length);
        //this returns undefined
        console.log(inputData);
        //and this returns text from inpu so i know there is data
    });
 }

Любые идеи, почему это происходит, в других случаях, когда при извлечении val () из ввода, он всегда представлен в виде строки ??

1 Ответ

12 голосов
/ 06 марта 2012

Единственное объяснение того, что length является неопределенным, - это если inputData не является строкой. Вы забыли упомянуть, с каким типом ввода вы работаете, но в любом случае приведение к строке должно решить проблему:

function checkInputData() {
    $('.mainSearchSubmit').live('click', function () {
        var inputData = $(this).parent().children().eq(0).val();
        inputData = String(inputData); // Cast to string
        console.log(inputData.length);
        //this returns undefined
        console.log(inputData);
        //and this returns text from inpu so i know there is data
    });
 }
...