-1

我知道这里还有另一个问题,但这对我不起作用。

所以我有一个非常大的表单,大约有 40 个字段,单独遍历每个字段很痛苦,所以我将 50 个字段分成类别并为每个输入类别分配一个 id,例如,有 10 个价格字段4 类 10 种数量:标准运输、快递运输、加急运输、超级加急运输。所以我用相同的ID命名了一个类别下的所有价格,例如标准运输是

<id input type="text" name="s_qty_25" id="s_cf" />
<id input type="text" name="s_qty_50" id="s_cf" />
<id input type="text" name="s_qty_100" id="s_cf" />
.... and so on

我的表格是这样定义的:

<form method="post" id="creation_form" action="actions/add_prices.php">
  ....
</form>

我用来验证的jQuery是这样的:

$(function() {
$('#creation_form').submit(function(e){

    $("#cs_f").each(function(index, obj){
        var cs_f_val = $(obj).val();
        if(cs_f_val == ''){
            $(obj).attr('style', 'background:red;');
            valid = false;
        }
    });

    //...repeat the snipet for each 3 remaining price groups

    return valid;
});
});

如果为空,则基本上将字段变为红色并取消提交。然而只有第一个字段会得到它的红色背景!

谢谢大家的帮助:)

4

2 回答 2

3

应该只有一个具有特定 id 的字段。这就是为什么它被称为id!

尝试改用一个类:

<id input type="text" name="s_qty_25" class="s_cf" />
<id input type="text" name="s_qty_50" class="s_cf" />
<id input type="text" name="s_qty_100" class="s_cf" />

然后

$(".cs_f").each
于 2012-10-11T05:13:15.507 回答
2

首先.. id 应该始终是唯一的...所以请改用 class

<id input type="text" name="s_qty_100" class="s_cf" />

在你的 javascript 中,试试这个

$(function() {
$('#creation_form').submit(function(e){

    $(".cs_f").each(function(index, obj){
    var cs_f_val = $(obj).val();
    if(cs_f_val == ''){
        $(obj).attr('style', 'background:red;');
        valid = false;
    }
  });

  //...repeat the snipet for each 3 remaining price groups

  return valid;
 });
});
于 2012-10-11T05:15:14.893 回答