如何使用jquery检查表单字段是否隐藏

如何使用jquery检查表单字段是否隐藏,jquery,wordpress,forms,gravity,Jquery,Wordpress,Forms,Gravity,我需要对表单字段执行一个简单的布尔条件。基本上我只需要知道字段#xxx是否隐藏 我认为这是正确的方法,但我不确定,因为我没有得到我想要的结果 if($("#input_<?php echo $form["id"]; ?>_27[type='hidden']").val() == '') { // the field has no value so let's break out of this break; } if($(“#input_u27[type='hidden'])).v

我需要对表单字段执行一个简单的布尔条件。基本上我只需要知道字段#xxx是否隐藏

我认为这是正确的方法,但我不确定,因为我没有得到我想要的结果

if($("#input_<?php echo $form["id"]; ?>_27[type='hidden']").val() == '') {
// the field has no value so let's break out of this
break;
}
if($(“#input_u27[type='hidden'])).val()=''){
//该字段没有值,所以让我们打破它
打破
}
我在Wordpress中为重力表单添加了一个钩子。我需要这个钩子来处理所有表单,因为这个表单可能是重复的,但是如果创建了一个包含相同字段ID但没有隐藏的新表单,我不想继续jQuery函数

编辑:为了更精确,我添加了钩子传递的GF id。在我发布这篇文章之后,我意识到如果我复制了这个表单,字段id就会改变

解决方法:使用下面希瓦姆的答案,我得到了答案。对于任何感兴趣的人,整个钩子都在这里:

<?php
add_filter('gform_pre_render', 'replace_cn');
function replace_cn($form){
    ?>
    <script type="text/javascript">
        jQuery(document).ready(function($){
            var cname =  $("#input_<?php echo $form["id"]; ?>_27[type='hidden']").val();
            if (!$("#input_<?php echo $form["id"]; ?>_27").is(":hidden")) {
                return;
            }
            var placeholder = '[XX]';
            jQuery("*").each(function () {
                if (jQuery(this).children().length == 0) {
                    jQuery(this).text($(this).text().replace(placeholder,cname));
                }
            });
            jQuery("label").each(function () {
jQuery(this).html($(this).html().replace(placeholder,cname));
            });         
        });
    </script>
<?php
return $form;
}
?>

jQuery(文档).ready(函数($){
var cname=$(“#input_uu27[type='hidden']”)val();
如果(!$(“#input_uuuuuu27”).是(“:hidden”)){
返回;
}
变量占位符=“[XX]”;
jQuery(“*”)。每个函数(){
if(jQuery(this).children().length==0){
jQuery(this).text($(this).text().replace(占位符,cname));
}
});
jQuery(“标签”)。每个(函数(){
jQuery(this.html($(this.html().replace(占位符,cname));
});         
});
实现同样效果的更安全的方法是:

('#yourID').attr('type') == 'hidden'; // this will also return a boolean

编辑:我的意思是,如果您使用
display:none设置元素样式,则
.is(:hidden)
仍将有效。您的选择器不正确。请参见此


如果你有重复的ID,你会遇到问题。我刚刚编辑了我的OP。我完全忘了我需要传递表单ID。太好了!谢谢,我知道有一个更优雅的解决方案。我稍微修改了一下,添加了动态表单ID。干杯!9分钟后,我可以把这个标记为答案:)你说的安全是什么意思?在选择中的脆弱性或一致性?只是编辑它。谢谢blurfus,但是如果没有单引号,它似乎仍然有效。
('#yourID').attr('type') == 'hidden'; // this will also return a boolean
$("input[type='hidden']").val()