检查所有输入文本是否为空,如果至少填写了一个,则打开彩色框

时间:2014-09-30 13:19:33

标签: javascript jquery html colorbox

我正在做一个表格,将产品数量发送到电子邮件地址(列表由php生成),用户输入所需的数量,并将其发送到电子邮箱,我的表单需要打开彩盒窗口,仅如果至少有一个字段被填满,如果所有字段都是空的,并且他点击发送,我会显示警报,我尝试了但是,出了点问题。请检查小提琴;

http://jsfiddle.net/traoLe14/2/

HTML:

 <ul>
        <li class="col-xs-2">
            <input type="number" name="1" min="0" max="100" class="form-control product" value="1">Apple</li>
        <li class="col-xs-2">
            <input type="number" name="2" min="0" max="100" class="form-control product" value="0">Banana</li>
        <li class="col-xs-2">
            <input type="number" name="3" min="0" max="100" class="form-control product" value="0">Grape</li>
        <li class="col-xs-2">
            <input type="number" name="4" min="0" max="100" class="form-control product" value="0">Potato</li>
    </ul>
    <div> <a href="#" class="btn btn-default send_products">
            <i class="glyphicon glyphicon-envelope"></i> send list 
        </a>

    </div>

JS:

$(".send_products").on("click", function (e) {
    e.preventDefault();
    $(".product").each(function () {
        // print values on console
        console.log($(this).val());

        if ($(this).val() > 0) {
            $("send_products").addClass("inline", function () {
                $(".inline").colorbox({
                    inline: true,
                    height: "50%",
                    width: "50%",
                    innerWidth: 800,
                    innerHeight: "50%"
                });
            });
        } else {
            alert("no products added");
        }
    });
});

2 个答案:

答案 0 :(得分:2)

您可以先找到数量为&gt的产品数量; 0使用以下查询

var length = $(".product").filter(function () {
        return $(this).val() > 0;
    }).length;

如果长度> 0,做正常处理,否则显示警告

http://jsfiddle.net/mfarouk/traoLe14/3/

答案 1 :(得分:1)

我想你应该试试

if($(this).val().length > 0)代替if($(this).val() > 0)

或者

if(parseInt($(this).val()))代替if($(this).val() > 0)

如果你检查typeof $(this).val()它将返回字符串然后在if循环中你将它与0进行比较。也许这就是问题。