使用jquery验证div不为空

时间:2015-05-08 14:21:35

标签: javascript jquery

我需要验证文本输入,.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

3 个答案:

答案 0 :(得分:2)

使用$(".search-results").text()代替$(".search-results").val()

对不属于某个表单的所有元素执行相同操作,例如divspanp等。

查看文档:{​​{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
}
祝你好运!