2012-06-28 1 views
0

http://jsfiddle.net/thetylercox/LgxPn/27/возвращается 1 в индексе в флажке

Если я нажимаю 1, а затем 2 флажок снят и оповещение отображается проблема, если я снова нажмите 2 нет предупреждения! Я уверен, что я сохранил значение предыдущей проверки 2, и мне нужно отменить это!

<script> 
     $(function() { 
      var lastChecked = []; 
      $(':checkbox').change(function() { 
       if (this.checked) { 
        if (lastChecked.length && this.value != lastChecked[0].value) { 
    $(this).prop("checked", false) 
         alert("the last box you checked has a different value"); 
        } 
        lastChecked.unshift(this); 
       } 
       else { 
        lastChecked.splice(lastChecked.indexOf(this), 1); 
       } 
      }); 
     }); 
    </script> 
    </head> 
    <body> 
    1 
    <input type="checkbox" name="checkbox[]" onClick="getVal();setChecks(this)" 
    value="1" class="chk" id="chk<?php echo $a++?>" title="<?php echo 
$rspatient['first'],' ',$rspatient['frameman'],' ', $rspatient['framemodel']?>" lang=" 
    <?php echo $rspatient['name']?>"/><br/> 
    2 
    <input type="checkbox" name="checkbox[]" onClick="getVal();setChecks(this)" 
    value="2" class="chk" id="chk<?php echo $a++?>" title="<?php echo 
    $rspatient['first'],' ',$rspatient['frameman'],' ', $rspatient['framemodel']?>" 
    lang="<?php echo $rspatient['name']?>"/><br/> 

http://jsfiddle.net/thetylercox/LgxPn/27/

+0

я попытался добавить следующую строку после отображает оповещения $ (это) .value = lastChecked [0] .Value, но это было ничего –

+0

NVM получил он изменил 0 до 1 –

ответ

0
<!doctype html> 
<html> 
<head> 
    <meta charset="utf-8" /> 
    <title>Untitled Document</title> 
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
    <script> 
     $(function() { 
      var lastChecked = []; 
      $(':checkbox').change(function() { 
       if (this.checked) { 
        if (lastChecked.length && this.value != lastChecked[0].value) {  $(this).prop("checked", false) 
         alert("the last box you checked has a different value"); 
        } 
        lastChecked.unshift(this); 
       } 
       else { 
        lastChecked.splice(lastChecked.indexOf(this), 1); 
       } 
      }); 
     }); 
    </script> 
</head> 
<body> 
    1 
    <input type="checkbox" name="checkbox[]" onClick="getVal();setChecks(this)" value="1" class="chk" id="chk<?php echo $a++?>" title="<?php echo $rspatient['first'],' ',$rspatient['frameman'],' ', $rspatient['framemodel']?>" lang="<?php echo $rspatient['name']?>"/><br/> 
    2 
    <input type="checkbox" name="checkbox[]" onClick="getVal();setChecks(this)" value="2" class="chk" id="chk<?php echo $a++?>" title="<?php echo $rspatient['first'],' ',$rspatient['frameman'],' ', $rspatient['framemodel']?>" lang="<?php echo $rspatient['name']?>"/><br/> 
    3 
    <input type="checkbox" name="checkbox[]" onClick="getVal();setChecks(this)" value="3" class="chk" id="chk<?php echo $a++?>" title="<?php echo $rspatient['first'],' ',$rspatient['frameman'],' ', $rspatient['framemodel']?>" lang="<?php echo $rspatient['name']?>"/><br/> 
    1 
    <input type="checkbox" name="checkbox[]" onClick="getVal();setChecks(this)" value="1" class="chk" id="chk<?php echo $a++?>" title="<?php echo $rspatient['first'],' ',$rspatient['frameman'],' ', $rspatient['framemodel']?>" lang="<?php echo $rspatient['name']?>"/><br/> 
    2 
    <input type="checkbox" name="checkbox[]" onClick="getVal();setChecks(this)" value="2" class="chk" id="chk<?php echo $a++?>" title="<?php echo $rspatient['first'],' ',$rspatient['frameman'],' ', $rspatient['framemodel']?>" lang="<?php echo $rspatient['name']?>"/><br/> 
    3 
    <input type="checkbox" name="checkbox[]" onClick="getVal();setChecks(this)" value="3" class="chk" id="chk<?php echo $a++?>" title="<?php echo $rspatient['first'],' ',$rspatient['frameman'],' ', $rspatient['framemodel']?>" lang="<?php echo $rspatient['name']?>"/><br/> 
    1 
    <input type="checkbox" name="checkbox[]" onClick="getVal();setChecks(this)" value="1" class="chk" id="chk<?php echo $a++?>" title="<?php echo $rspatient['first'],' ',$rspatient['frameman'],' ', $rspatient['framemodel']?>" lang="<?php echo $rspatient['name']?>"/><br/> 
    2 
    <input type="checkbox" name="checkbox[]" onClick="getVal();setChecks(this)" value="2" class="chk" id="chk<?php echo $a++?>" title="<?php echo $rspatient['first'],' ',$rspatient['frameman'],' ', $rspatient['framemodel']?>" lang="<?php echo $rspatient['name']?>"/><br/> 
    3 
    <input type="checkbox" name="checkbox[]" onClick="getVal();setChecks(this)" value="3" class="chk" id="chk<?php echo $a++?>" title="<?php echo $rspatient['first'],' ',$rspatient['frameman'],' ', $rspatient['framemodel']?>" lang="<?php echo  $rspatient['name']?>"/><br/> 
</body> 
</html>​ 
0

Поскольку вы убрав флажок, вы не должны хранить этот флажок в lastChecked массиве. Просто оберните lastChecked.unshift(this) в блок else.

http://jsfiddle.net/LgxPn/28/

Смежные вопросы