2016-11-09 8 views
1

jQueryのこのチェックでいくつか問題があります。1つの値が他の値よりも大きいかどうかをチェックする方法

問題:

私は、動的にテーブルを生成しています。この表では、私は多くの行を持っています。各行にはチェックボックスと入力があります。入力が空でない場合、入力ぼかしで自動的にチェックボックスがオンになります。

私はいくつかの値を入力して2つの入力があり、チェックボックスもチェックされています。入力値がある値より大きいかどうかを確認したい。

コード:

$("#btn_send_order") 
    .on("click", function(){ 

    var keys = new Array(), 
     array = new Array(); 

    $(':checkbox[class="send_vacc checkbox"]:checked').each (function() 
    { 
    if (parseInt($("input[id='"+this.id+"'].sended_cnt").val()) > parseInt($("input[id='"+this.id+"'].sended_cnt").attr("class").split(" ")[2])) 
    { 
     return false; 
    } 
    else 
    { 
     array.push($("input[id='"+this.id+"'].sended_cnt").val()); 
     keys.push(this.id); 
    } 
    }); 
}); 

だから、私は入力して、私はPHPスクリプトから形成され、そのクラスから取得する第二の値に入力された値を持っています。最初の入力がどのように私はすべての値をチェックするためにこのコードを変更することができ、次に大きい値にそのクラス値(Iは2行のテーブルの上にこのコードをテスト)

<tbody> 
    <tr style="text-align: center; background-color: pink;" class="rek888889" id="76"> 
     <td>1</td> 
     <td>ser5555778</td> 
     <td>test_vaccine98</td> 
     <td>74/<input type="text" id="76" name="sended_cnt" class="sended_cnt rek888889 74" maxlength="3"></td> 
     <td>31.10.2026</td> 
     <td>rek888889</td> 
     <td><input class="send_vacc checkbox" id="76" type="checkbox"></td> 
    </tr> 
    <tr style="text-align: center; background-color: pink;" class="rek123" id="1"> 
     <td>2</td> 
     <td>ser1098</td> 
     <td>test_vaccine_1</td> 
     <td>600/<input type="text" id="1" name="sended_cnt" class="sended_cnt rek123 600" maxlength="3"></td> 
     <td>13.10.2025</td> 
     <td>rek123</td> 
     <td><input class="send_vacc checkbox" id="1" type="checkbox"></td> 
    </tr> 
</tbody> 

を持っている場合のみ、上記

コードは動作しますか?

+0

感謝。あなたは、何が失敗しているのか、何が起こるべきか、起こっていないことをより明確にすることができますか?あなたのコードはあなたの記述のために実行可能に見えるので、私はあなたが持っている問題を理解するのに苦労しています。 –

答えて

2

コードでIDを複数回使用することはできません。したがって、checkboxinputのIDは異なる必要があります。入力IDの名前をinputXXに変更しました。また、セレクタをもっと良い方法で書くこともできます。書き込みアップのための

フィドル

https://jsfiddle.net/ergec/juney6mq/

スニペット

$("#btn_send_order").on("click", function() { 
 
    var keys = new Array(), 
 
     array = new Array(); 
 
    $('.send_vacc.checkbox:checked').each(function() { 
 
     if (parseInt($("input[id='input" + this.id + "'].sended_cnt").val()) > parseInt($("input[id='input" + this.id + "'].sended_cnt").attr("class").split(" ")[2])) { 
 
      return false; 
 
     } else { 
 
      array.push($("input[id='input" + this.id + "'].sended_cnt").val()); 
 
      keys.push(this.id); 
 
     } 
 
    }); 
 
\t console.log(keys); 
 
\t console.log(array); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<table> 
 
    <tbody> 
 
     <tr style="text-align: center; background-color: pink;" class="rek888889" id="76"> 
 
      <td>1</td> 
 
      <td>ser5555778</td> 
 
      <td>test_vaccine98</td> 
 
      <td>74/
 
       <input type="text" id="input76" name="sended_cnt" class="sended_cnt rek888889 74" maxlength="3"> 
 
      </td> 
 
      <td>31.10.2026</td> 
 
      <td>rek888889</td> 
 
      <td> 
 
       <input class="send_vacc checkbox" id="76" type="checkbox"> 
 
      </td> 
 
     </tr> 
 
     <tr style="text-align: center; background-color: pink;" class="rek123" id="1"> 
 
      <td>2</td> 
 
      <td>ser1098</td> 
 
      <td>test_vaccine_1</td> 
 
      <td>600/
 
       <input type="text" id="input1" name="sended_cnt" class="sended_cnt rek123 600" maxlength="3"> 
 
      </td> 
 
      <td>13.10.2025</td> 
 
      <td>rek123</td> 
 
      <td> 
 
       <input class="send_vacc checkbox" id="1" type="checkbox"> 
 
      </td> 
 
     </tr> 
 
    </tbody> 
 
</table> 
 
<button id="btn_send_order">Send Order 
 
</button>

+0

ok、私はそれを試してみましょう、ありがとう=) – vladimir

関連する問題