2016-05-23 2 views
0

Ну, у меня есть форма, в которой пользователь может выбрать элемент с помощью флажка, тип пользователя, сколько элементов он хочет отправить с помощью входного текста, но есть некоторые элементы, требующие серийный номер что флажок установлен.Проверить все флажки перед отправкой

Это мой подход:

<script> 
     function checkall() 
     { 
     var ok=true; 
     $('input:checkbox[id^="art"]:checked').each(function() { 
      var vals = $(this).val(); 
      //first attempt 
      if (typeof document.getElementById(vals+"existencia") === 'undefined') { 
      ok=false; 
      return false; 
      alert("Error message"); 
      }else 
      if (typeof document.getElementById(vals+"-serie")==='undefined') { 
      ok=false 
      return false; 
      alert("Error message 2"); 
      } 

//second attempt 
      if (obj.hasOwnProperty(vals+'existencia')) { 
      art = document.getElementById(vals+"existencia").value; 
      alert(art); 
      }else if (obj.hasOwnProperty(vals+'serial')) { 
      sert=document.getElementById(vals+"-serie").value; 
      alert(sert); 
      } 
     }); 


     if(ok) 
     { 
      document.getElementById("myform").submit(); 
     } 
     } 
     </script> 

Скрипт предназначен для цикла все отмеченные флажками и если вход порожние останавливается и предупреждает пользователя, а другой этап, когда он проверяет статью с серийным номером, по крайней мере, 1 должны проверяться, а также предупреждает клиент

e1

первую попытку, я попробовал, был принят причиной этих элементы определены и вторая попытка броска obj is not defined, может быть Я пропустил коды и ответы, которые я искал, может кто-то помочь в достижении моей цели или объяснить мне, что я сделал не так, спасибо.

UPDATE:

if ($inicio == 0) { 
        echo "<tr bgcolor= '#f4f4f4' >"; 
        $inicio = 1; 
        } else { 
        echo "<tr bgcolor= white>"; 
        $inicio = 0; 
        } 
        ?> 
        <td style="width: 10%;text-align: center;"> 
        <input type="checkbox" name="art[]" id="art" value="<?php echo $articulo; ?>" /></td> 
        <td width="12%" align="center"><?php echo $diferencia_dias ?> d&iacute;as</td> 
        <td width="8%" style="text-align: center;"><?php echo $articulo; ?></td> 

        <td width="45%"><?php echo $descripcion; ?></td> 
        <?php 
        if($numserie>0){ 
         $esto = trim($articulo); 
         $bus_serie = mssql_query("execute serial_madness '$esto','$almacen'"); 
         echo "<td style='width:10%;text-align:left;'>"; 
         while($res_serie = mssql_fetch_array($bus_serie)) 
         { 
         echo '<input type="checkbox" id="'.$articulo.'-serie" name="'.$articulo.'-Serie[]" value="'.$res_serie["ARTICULO"].','.$res_serie["NUMSERIE"].'_'.$valor.' "> '.$res_serie["NUMSERIE"].' <br>'; 
         } 
         echo "</td>"; 
        }else{ 
         ?><td style="width:10%;text-align:center;"><input type="number" style="text-align:center;width:30px; height:30px;" id="<?php echo $articulo_c; ?>existencia" name="<?php echo 
         $articulo_c; ?>existencia" value="<?php echo (int)$existencias; ?>" min="1" max="<?php echo (int)$existencias; ?>"/></td> 
         <?php 
        } ?> 
+0

Это тихое очевидно, что один не может проверить этот код без с разметкой .. Не могли бы вы поделиться этим? – Rayon

+0

обновлено, это вы имели в виду? – Rhopercy

+0

Уверен, что этот вопрос не связан с 'php' .. Разделите браузер, обработанный/обработанный html .. – Rayon

ответ

0

Итак, для того, чтобы проверить флажок, вы можете просто использовать JQuery.

Пример: $("#checkboxId").prop('checked', true);

В приведенном выше примере будет проверить флажок с идентификатором «checkboxId», изменение true к false будет снять флажок;

Если вы хотите проверить, сколько или какие входы проверены, вы можете использовать .length массива, возвращаемого селектором jquery.

Ниже будет проверять все флажки с идентификаторами, начиная со словом «тест» проверяются:

if($('[id^="test"]:checkbox').length == $('[id^="test"]:checkbox:checked').length) 
{ 
    // Do stuff here 
} 

Аналогично вы можете проверить, если ничего не проверяется, если длина равна нулю.

Я подготовил простой пример, который, я думаю, решает общую проблему, которую вы решаете здесь.

https://plnkr.co/edit/2v6x1DXRpAiaKiBFSMz6?p=preview

Обратите внимание, что при нажатии кнопки «Отправить» в моей plunker например, все флажки будет автоматически становится проверено.

Если вы нажмете кнопку «Подтвердить», она проверит, что все флажки действительно отмечены.

Вы должны иметь возможность использовать мой пример для создания решения для вашего конкретного случая.

Вы также можете использовать .is() Jquery функции примера: $('#' + id).is(":checked")

Смотрите следующий ответ для некоторых подобных решений и объяснений: Check if checkbox is checked with jQuery

+0

Я собираюсь протестировать это прямо сейчас, дождаться обратной связи – Rhopercy

+0

Это помогает мне с подтверждением серийного номера, но я думаю, что вы дадите пинок на правильный путь, спасибо! – Rhopercy

+0

Что еще вы еще не знаете, как это сделать? Я могу попытаться добавить его к моему ответу. – njfife

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