在输入之前查找标签[必需]

时间:2016-02-10 16:46:49

标签: jquery input label

我的简单表单字段如下:

 <div class="form-group " id="requestor_last_name-input">
      <label class="control-label col-sm-2" for="requestor_last_name">Last Name</label>
      <div class="col-sm-10">
        <input type="text" class="form-control" name="requestor_last_name" id="requestor_last_name" size="50" maxlength="50" value="Flaherty" required>
      </div>
    </div>

我不明白为什么在输入[required]之前我无法选择标签:

$("input[required]").prev("label").css("color", "red");

我缺少什么?

2 个答案:

答案 0 :(得分:1)

.prev()只选择兄弟姐妹,因为INPUT是其父DIV的唯一子节点,所以它没有兄弟姐妹。因此,您需要使用.parent()来转到DIV,然后您可以使用.prev()转到标签。

$("input[required]").parent().prev("label").css("color", "red");

答案 1 :(得分:1)

您可以通过为包含控制标签的div分配id来实现此目的。

$(document).ready(function(){
    $("button").click(function(){
        alert( $("#inputdiv").prev(".control-label").html());
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="form-group " id="requestor_last_name-input">
      <label class="control-label col-sm-2" for="requestor_last_name">Last Name</label>
      <div id="inputdiv" class="col-sm-10">
        <input type="text" class="form-control" name="requestor_last_name" id="requestor_last_name" size="50" maxlength="50" value="Flaherty" required>
      </div>
    </div>



<button>Get Label</button>