2016-12-08 3 views
1

Я пытаюсь получить пустой ввод, если есть один в моем div, используя jQuery. Он не работает должным образом.проверка пустого ввода

В div есть 4 пустых входа.

Вот мой JQuery:

var firstEmpty = $('#brochureItems').find('input:text:not(:checkbox,:button):visible:first:enabled[value= ""]').first().val(); 
console.log(firstEmpty); 

, который выводит 'неопределенными'.

Когда я удаляю «[value =" "]", я получаю '(пустую строку)'.

Я только что подумал о чем-то, я добавляю эти входы динамически с jquery на загрузке страницы. Будет ли это иметь с этим какое-то отношение?

+0

Не могли бы вы предоставить свой html, который вы просматриваете? – chazsolo

ответ

-1

Попробуйте это:

function findEmpty(){ 
 
    var div=document.getElementById('theDivID'); 
 
    for(var i=0;i<div.children.length;i++){ 
 
    if(div.children[i].value==''){ 
 
     return div.children[i].id; 
 
    } 
 
    } 
 
    return false; 
 
} 
 
function verify(){ 
 
    var lol = findEmpty(); 
 
    if(lol===false){ 
 
    //Do whatever 
 
    alert("All filled!"); 
 
    } else { 
 
    alert("The first empty input is: "+lol); 
 
    } 
 
}
<div id='theDivID'> 
 
<input id='blah' type='text'/> 
 
<input id='bleh' type='text'/> 
 
<input id='qwertyuiop' type='text'/> 
 
<input type='text'/> 
 
</div> 
 
<input type='button' onclick='verify();' value='Check'/>

+0

Это чистый js, но ему нужно обходное решение для jQuery. –

+0

Если он может использовать JQuery, он может использовать чистую JS. – Feathercrown

0

Если я понял, вы правы вы хотите, чтобы получить все пустые входы внутри дел. Чтобы сделать это, попробуйте этот код:

HTML

<div> 
    <input type="text"> 
    <input type="text"> 
    <input type="text"> 
    <input type="text"> 
    <input type="text" value="asdsad"> 
</div> 


JS

var firstEmpty = $("div input[type='text']").filter(function() { return $(this).val() == ""; }); 

или если вы хотите принять все пустые:

var emptyInputs = []; 

$("div input[type='text']").each(function(){ 
    if($(this).val() == '') 
    emptyInputs.push($(this)) 
}); 

Здесь работает скрипку: https://jsfiddle.net/xs9jagc8/

Смежные вопросы