我需要验证文本输入,.search-results
div在"当前图像"字段集和下拉列表选择都不为空。我有文本输入和下拉工作的逻辑,但无法弄清楚为什么空div逻辑不起作用:
<div class="input-group col-md-6">
<input type="text" class="form-control" placeholder="Search by Asset ID" maxlength="64" class="form-control" id="imageid" name="imageid"> <span class="input-group-btn">
<button class="btn btn-default image-search" type="button">Search</button>
</span>
</div>
<fieldset class="scheduler-border">
<legend class="scheduler-border">Current Images</legend>
<div class="scheduler-broder">
<div class="search-results"></div>
</div>
</fieldset>
</div>
<div class="form-group">
<label for="image">Select Asset Type:</label>
<select id='crop' class="btn btn-default" data-toggle="dropdown">
<option value="default">Choose Type</option>
<option value="now">Now</option>
<option value="livefeeds">Live Feeds</option>
</select>
</div>
<div class="form-group">
<label for="imageid">Select an image</label>
<input type="file" name="file" class="btn btn-default form-control" id="file" accept="image/jpg, image/png, image/jpeg" />
</div>
function checkForInputs() {
var filledUp = $("#imageid").val() != '' && $("#crop").val() != "default" && $(".search-results").val() != '';
if (!filledUp) {
$("#file").attr("disabled", true);
} else if (filledUp) {
$("#file").attr("disabled", false);
}
}
$("#imageid").keyup(function () {
checkForInputs();
});
$("#crop").change(function () {
checkForInputs();
});
checkForInputs();
JSfiddle:link
答案 0 :(得分:2)
使用$(".search-results").text()
代替$(".search-results").val()
对不属于某个表单的所有元素执行相同操作,例如div
,span
,p
等。
查看文档:{{3}}
答案 1 :(得分:1)
方法 .val() ,如jquery网站所述:
获取匹配元素集中第一个元素的当前值或设置每个匹配元素的值。
您应该使用.text()
代替.val()
在这种情况下,您的验证应该是
var filledUp = $("#imageid").val() != '' && $("#crop").val() != "default" && $(".search-results").text() != '';
所以这jsfiddle正在运作
答案 2 :(得分:-1)
你可以使用
if($('#mydiv').html().length() == 0)
{
//do something
}
这是为了与空值进行比较
执行此任务的其他方式是与功能&#34; children&#34;,example。
进行比较if($('.search-results').children.length == 0)
{
// dosomething
}
祝你好运!