2016-11-09 80 views
1

我在jQuery中檢查有一些問題。如何檢查一個值是否大於其他值

問題:

我已動態生成的表。在這張表中我有很多行。在每一行中,我都有複選框和輸入。如果輸入不爲空,則在輸入模糊時自動檢查複選框。

例如我有兩個填充輸入與一些值和複選框也檢查。我想檢查輸入值是否大於某個值。

代碼:

$("#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腳本形成了類得到的值。

以上代碼只能如果第一個輸入具有較大的值,那麼它的類值(我測試兩行的表的代碼)

<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

好的,我會試試看,謝謝=) – vladimir

相關問題