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

时间:2013-07-25 20:52:16

标签: 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;
}

我在Wordpress中为重力形式添加了一个钩子。我需要这个钩子来处理所有表单,因为这个表单可能是重复的,但是如果创建一个包含相同字段ID但不隐藏的新表单,我不想继续使用jQuery函数。

编辑:我添加了由钩子传递的GF id以获得更高的准确性。在我发布之后我意识到,如果我复制了那个表单,那么字段id会改变。

解决:使用Shivam的答案我得到了它。对于任何感兴趣的人,整个钩子都在这里:

<?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;
}
?>

2 个答案:

答案 0 :(得分:1)

$("#input_3_27").is(":hidden")

实现同样效果的更安全的方法是:

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

编辑:我认为安全,如果您使用.is(:hidden)设置元素样式,display:none仍然有用。

答案 1 :(得分:0)

您的选择器不正确请参阅此jsfiddle

$("input[type='hidden']").val()