0

我需要在表单字段上做一个简单的布尔条件。基本上我只需要知道字段#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;
}
?>
4

2 回答 2

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

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

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

编辑:通过安全我的意思是,.is(:hidden)如果您使用display:none.

于 2013-07-25T20:55:07.627 回答
0

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

$("input[type='hidden']").val() 
于 2013-07-25T21:01:56.323 回答