【问题标题】:How to validate if checkbox is checked in jquery ajax .prop fumction()? [duplicate]如何验证是否在 jquery ajax .prop 函数()中选中了复选框? [复制]
【发布时间】:2019-01-08 14:53:04
【问题描述】:

我的网站中有一个复选框,我正在使用 php 验证它并在页面加载的同一页面中提交。 需要广告 ajax post 方法来禁用页面加载,但无法验证复选框。

我试过jquery $(elem).prop("checked"),但没用

$(document).ready(function(){
$('#load-image').hide();
    $('#ik_kvkk').prop('checked');
    $("form").submit(function(event){
        event.preventDefault();
        $('#load-image').show();
            $('input[type=checkbox]').prop('checked');
        var ik_name =$("#ik_name").val();
        var ik_kvkk =$("#ik_kvkk").val();
        var captcha =$("#captcha").val();
        var submit =$("#submit").val();
        $(".form-message").load("forms/comment_add.php",{   
            ik_name:          ik_name,  
            ik_kvkk:          ik_kvkk,  
            captcha:          captcha,
            submit:           submit
        },function() {
            $('#load-image').hide();
        });
    });
});

推荐人.prop()

这是我的原始代码:

$(document).ready(function(){
$('#load-image').hide();
	$("form").submit(function(event){
		event.preventDefault();
		$('#load-image').show();
        $('input[type=checkbox]').prop('checked');
		var ik_name =$("#ik_name").val();
		var ik_kvkk =$("#ik_kvkk").val();
		var captcha =$("#captcha").val();
		var submit =$("#submit").val();
		$(".form-message").load("forms/comment_add.php",{	
			ik_name:          ik_name,	
			ik_kvkk:          ik_kvkk,	
			captcha:          captcha,
			submit:           submit
		},function() {
			$('#load-image').hide();
		});
	});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

> Validating part and added total codes

<script>
$("#ik_name,#ik_kvkk, #captcha").removeClass("input-error");
	if(errorEmpty == true){
		$("#ik_name,#ik_kvkk, #captcha").addClass("input-error");
	}
	if(errorEmail == true){
		$("#ik_email").addClass("input-error");
	}
	if(!$('input[type=checkbox]').prop('checked')) {
	 $('#ik_kvkk').val("").show();
	}
	if(errorEmpty == false && errorEmail == false){
		$("#ik_name,#ik_kvkk, #captcha").val("");
	}
   /* 
	if(errorCheckbox == true){
	 $('#ik_kvkk').addClass("input-error");
	} */
  </script>
<form>
  <input type="text" id="ik_name" name="ik_name"><br>
  <input type="text" id="captcha" name="captcha"><br>
  <input type="checkbox" id="ik_kvkk" name="ik_kvkk"><br>
  <button type="submit" id="submit" name="submit">Submit</button>
</form>
<p class="form-message"></p>

感谢您的帮助

【问题讨论】:

标签: php jquery ajax


【解决方案1】:

如果选中则返回 true,如果未选中则返回 false:

$('input[type=checkbox]').prop('checked');

因此,您可以处理是关闭 AJAX 还是在屏幕上抛出验证错误。

编辑:

if(!$('input[type=checkbox]').prop('checked')) {
    //If not checked, updated error message element with message and display
   $('#errorMessageElement').val("Checkbox is not check or whatever error message").show();
}

查看这个 sn-p 并根据您的需要进行调整:

$(document).ready(function(){
$('#load-image').hide();
    $('#ik_kvkk').prop('checked');
    $("form").submit(function(event){
        event.preventDefault();
        $("#ik_name,#ik_kvkk, #captcha").removeClass("input-error");
        $('.form-message').hide();
        $('#load-image').show();
        
        var is_checked = $('input[type=checkbox]').prop('checked');
        var ik_name =$("#ik_name").val();
        var ik_kvkk =$("#ik_kvkk").val();
        var captcha =$("#captcha").val();
        var submit =$("#submit").val();
        var can_submit = true;
              
        
        
	if(!ik_name){
    $('.form-message').val("ERROR").show();
		$("#ik_name,#ik_kvkk, #captcha").addClass("input-error");
   can_submit = false;
	}
  
	if(!ik_kvkk){
    $('.form-message').val("ERROR").show();
		$("#ik_email").addClass("input-error");
   can_submit = false;
	}
  
  if(!captcha){
    $('.form-message').val("ERROR").show();
		$("#captcha").addClass("input-error");
   can_submit = false;
	}
  
	if(!is_checked) {
	 $('.form-message').val("ERROR").show();
   $("#ik_kvkk").addClass("input-error");
   can_submit = false;
	}  
          
      if(can_submit) {
         console.log("Can submit");
      //$(".form-message").load("forms/comment_add.php",{   
          //  ik_name:          ik_name,  
           // ik_kvkk:          ik_kvkk,  
           // captcha:          captcha,
          //  submit:           submit
       // },function() {
       //     $('#load-image').hide();
      //  });       
        //
      } else {
         console.log("Validation Error");
      }
      }); 
});
.input-error {
background: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form>
  <input type="text" id="ik_name" name="ik_name"><br>
  <input type="text" id="captcha" name="captcha"><br>
  <input type="checkbox" id="ik_kvkk" name="ik_kvkk"><br>
  <button type="submit" id="submit" name="submit">Submit</button>
</form>
<p class="form-message" style="display:none;">ERROR</p>

【讨论】:

  • 如何将验证错误抛出与其他值相同的屏幕?喜欢var ik_kvkk =$("#ik_kvkk").val(); ?
  • 嗯,你需要一个元素来显示消息,使用类/id 等样式。然后使用$('#errorMessageElement').val("Checkbox is not check or whatever error message"),但显然,无论你给出的元素是什么 ID 等。显示它和您自己的错误消息。
  • 但显然,只有在验证时不勾选复选框
  • 我添加了一个编辑
  • 非常感谢兄弟,搞定了。
猜你喜欢
  • 2018-03-23
  • 2017-04-05
  • 2017-03-28
  • 2017-01-21
  • 1970-01-01
  • 2014-10-29
  • 2015-01-10
  • 2021-01-12
  • 1970-01-01
相关资源
最近更新 更多