проверка формы с использованием JavaScript в codeigniter - PullRequest
0 голосов
/ 26 мая 2011

привет, у меня есть таблица jquery, заполненная из datebase:

<?php 
$attributes = array('name' => 'users');

echo form_open('users/action',$attributes);?>
<table class="data display datatable" id="example">
    <thead>
        <tr>
          <th>Username</th>
          <th>Name</th>
          <th>Nickname</th>
          <th>Birthday</th>
          <th>Sex</th>
          <th>Address</th>
          <th><input type="checkbox" id="select all"></th>
        </tr>
    </thead>
    <tbody> 
<?php foreach($query->result_array() as $row): ?>
        <tr class="even gradeC">
            <td><?php echo anchor('users/details/'.$row['usrID'],$row['usrName']);?></td>
            <td><?php echo $row['usrpFirstName'].' '.$row['usrpLastName'];?></td>
            <td><?php echo $row['usrpNick'];?></td>
            <td><?php echo $row['usrpBday'];?></td>
            <td><?php echo $row['usrpSex'];?></td>
            <td><?php echo $row['usrpAddress'];?></td>
            <td><input type="checkbox" name="checkID[]" id="checkID" value="<?php echo $row['usrID'];?>" />

              <label for="checkID"></label></td>
        </tr>
<? endforeach; ?>
    </tbody>
</table>
  <input type="submit" name="Delete" id="Delete" value="Delete" class="btn btn-orange" />
  <input type="submit" name="Edit" id="Edit" value="Edit" class="btn btn-orange" onclick="return validateForm()" />
  <input type="submit" name="AddUser" id="Add User" value="Add User" class="btn btn-orange" />
 </form>

, как вы можете видеть ниже, я использую checkID[], чтобы я мог получить каждый идентификатор каждого пользователя.Я сделал onlick на кнопке редактирования, чтобы он проверил, пустой идентификатор или нет.вот моя функция js

<head>
<script type="text/javascript">
function validateForm()
{
var x=document.forms["users"]["checkID[]"].value
if (x==null || x=="")
  {
  alert("Please select user to edit.");
  return false;
  }
}
</script>
</head>

проблема сейчас в том, что он все равно будет предупреждать, даже если я проверю одного пользователя в таблице ..

даже если я использую это:

<?php 
$attributes = array('name' => 'users' , 'onsubmit' =>"return validateForm()");

echo form_open('users/action',$attributes);?>

1 Ответ

3 голосов
/ 26 мая 2011

document.forms["users"]["checkID[]"] даст вам массив всех флажков с этим именем.Вы просите value массива, который не имеет смысла.Вам нужно будет просмотреть их, чтобы выяснить, проверяется ли что-нибудь с помощью чего-то вроде этого:

function validateForm() {
   var checkboxes = document.forms["users"]["checkID[]"];
   for (var i = 0; i < checkboxes.length; i++) {
      if (checkboxes[i].checked) {
         return true;
      }
   }

   alert("Please select a user to edit.");
   return false;
}

Я не проверял это, но этот код должен дать вам общее представление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...