2016-12-08 12 views
1

jQueryを使用してdiv内に空の入力がある場合は、空の入力を取得しようとしています。それはうまくいかない。空の入力を確認する

divに4つの空の入力があります。ここで

は私のjQueryのです:

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

'未定義' を出力すること。

「[value = ""]」を削除すると、「(空の文字列)」が出力されます。

私はちょっと考えましたが、ページの読み込み時にjqueryを使ってこれらの入力を動的に追加しています。それはそれと関係がありますか?私は右のあなたを理解した場合は、divの内側のすべての空の入力を取得したい

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

あなたは横断しているHTMLを提供できますか? – chazsolo

答えて

-1

はこれを試してみてください。そのためには、このコードを試してみてください。

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/

+0

純粋なjsですが、jqueryの回避策が必要です。 –

+0

JQueryを使用することができれば、純粋なJSを使用できます。 – Feathercrown

0

関連する問題