2013-02-18 32 views
1

鉴于这个div:jQuery的 - 检查多个子输入有一个值

<div id="addActor1"> 
    <select type="select" id="ddlSelectActor1" class="selectActor"> 

    </select><br /> 
    <br /> 
    <p class="newActor"> 
     <label id="lblAddActor1FirstName" for="txtAddActor1FirstName">First Name: </label> 
     <input type="text" id="txtAddActor1FirstName" size="20" /> 
     <label id="lblAddActor1LastName" for="txtAddActor1LastName">Last Name: </label> 
     <input type="text" id="txtAddActor1LastName" size="20" /> 
    </p> 
</div> 

当选择一个特定的选项(这是在js文件填充)被选中,我需要检查,如果任一输入有任何输入。

我试过下面相似,但不能完全弄清楚:

$('#addActorsDialog select.selectActor').each(function() { 
    var empty = true; 

    // This gives me js error in console: "Uncaught Error: Syntax error, unrecognized expression: p input:nth-child(2)]" 
    console.log('p html: ' + $(this).parent().find('p input:nth-child(2)]').text()); 

    if ($(this).val() !== '0' || 
      ($(this).val() === 'a' 
       // || [if textboxes are empty] 
       ) 
      ) { empty = false; } 
    //... 
}); 

如何查看任一输入是否有值吗?

回答

4

我认为你需要删除]

find('p input:nth-child(2)')

,并检查任一输入是否具有价值在这里你可以这样做:

var emptyInputs = $(this).parent().find('p input[type="text"][value!=""]'); 

if(emptyInputs.length > 0) { 
    empty = false; 
} else { 
    empty = true; 
} 

OR

var emptyInputs = $(this).parent().find('p input[type="text"]').filter(function() { 
         return $.trim(this.value).length > 0; 
        }); 
+0

这根据需要,谢谢。 (完全错过了那里的支架!) – marky 2013-02-18 17:26:23

0

试试这个:

console.log('p html: ' + $(this).parent().find('p input:nth-child(2)')[0].text()); 

这会给你通过find返回列表中的第一个元素的文本值。