jQuery - 检查多个子输入是否有值

时间:2013-02-18 16:46:02

标签: jquery

鉴于这个div:

<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; }
    //...
});

如何检查输入中是否有值?

2 个答案:

答案 0 :(得分: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;
                  });

答案 1 :(得分:0)

试试这个:

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

这将为您提供find返回的列表中第一个元素的文本值。