无法使用jquery / ajax验证复选框值

时间:2014-04-11 17:22:40

标签: php jquery ajax

在我的html表单中,除复选框值外,所有数据都成功验证。它不是用jquery / ajax请求验证的。

这是我的html表单ajax和html代码(仅限部分):

<tr>
<td>Terms & Conditions</td>
<td><input type="checkbox" name="terms"/>&nbsp; I agree to your <a href="">terms and 
conditions</a>.</td>

<script>
  $('#form1').submit(function(event) {
  event.preventDefault();
  $.ajax({
   type: 'POST',
   url: 'regProcess.php',
   data: $(this).serialize(),
   dataType: 'json',   
   success: function (data) {
        $('#info1').html('');
        $.each( data, function( key, value ) {

          $('#info1').append('<p>'+value+'</p>');
        });    

   }
  });
 });
</script>

在regProcess.php页面中,以下是我的Checkbox验证码,但它没有验证..

if(isset($_POST['terms']) && $_POST['terms'] == ""){
    $msg[] = "You must agree our terms and conditions";
    $msg1['error'] = true;
    }

2 个答案:

答案 0 :(得分:1)

选中ID

复选框
<tr>
<td>Terms & Conditions</td>
<td><input type="checkbox" id="terms" name="terms"/>&nbsp; I agree to your <a href="">terms and 
conditions</a>.</td>

然后使用它来查找复选框是否已选中?

<script>
  $('#form1').submit(function(event) {
  event.preventDefault();
  if($('#terms').is(':checked') )
  {

  $.ajax({
   type: 'POST',
   url: 'regProcess.php',
   data: $(this).serialize(),
   dataType: 'json',   
   success: function (data) {
        $('#info1').html('');
        $.each( data, function( key, value ) {

          $('#info1').append('<p>'+value+'</p>');
        });    

   }
  });
  }
else{
alert("Check terms and condition");
}
 });
</script>

Live Example

答案 1 :(得分:0)

如果未选中复选框,则不会设置

$_POST['terms']。它应该是:

if (empty($_POST['terms']) || $_POST['terms'] !== 'on') {

或只是

if (empty($_POST['terms'])) {