-1

ここに別の質問があることは知っていますが、これは私にはうまくいきません。

したがって、私は約40のフィールドを持つ非常に大きなフォームを持っており、各フィールドを個別に通過するのは面倒です。そこで、50のフィールドをカテゴリに分割し、各入力カテゴリにIDを割り当てました。たとえば、10の価格フィールドがあります。標準配送、速達配送、ラッシュ配送、スーパーラッシュ配送の4つのカテゴリで10個の数量。そのため、同じIDを持つ1つのカテゴリのすべての価格に名前を付けました。たとえば、標準配送は次のようになります。

<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 を持つフィールドは 1 つだけにする必要があります。それが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は常に一意でなければなりません...代わりにクラスを使用してください

<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 に答える