2014-04-11 69 views
0

在我的HTML表单中的所有数据成功,除了复选框值验证复选框值。它不验证与jquery/ajax请求。无法验证与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页以下是我的复选框验证代码,但它不是验证..

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

看到这个http://stackoverflow.com/questions/11424037/does-input-type-checkbox-only-post-data-if-its-checked – KrIsHnA

+0

在这里你可以得到一个回答:http://stackoverflow.com/questions/19893927/send-checkbox-value-in-php-form – KrIsHnA

回答

0

如果它是未选中的复选框,则不会设置。它应该改为:

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

或只是

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

我不明白。 – Babu

+0

你的PHP脚本没有返回错误的原因是因为你正在检查'$ _POST ['terms']'是否被设置,它不是。看到我更新的答案。 –

+0

哦,很好,你的答案是工作。但我不明白你为什么使用'on'? – Babu

0

给复选框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

+0

我应该把你的代码?在regProcess.php或html页面? – Babu

+0

它的jquery,所以一定是客户端在这里! :) – KrIsHnA

+0

我认为他建议你不要使用ajax,只要确保使用javascript检查了该框。 –