2013-07-25 26 views
0

我需要在表单域上做一个简单的布尔条件。基本上我只需要知道字段#xxx是否隐藏。如何检查表单域是否与jquery隐藏

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

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会改变。

已解答:在下面使用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; 
} 
?> 
+0

你最终将不得不如果你将不得不重复的ID –

+0

我刚编辑我的OP的问题。我完全忘了我需要通过表单ID。 – RyGuy

回答

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

也能达到同样的效果更安全的方法是:

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

编辑:通过安全我的意思是,.is(:hidden)仍将如果你的工作作风与display:none的元素。

+0

完美!谢谢,我知道有一个更优雅的解决方案。我稍微修改它以添加动态表单ID。干杯!在9分钟内,我可以将此标记为答案:) – RyGuy

+0

@RyGuy,您的欢迎! – Shivam

+0

你的意思是安全吗?如同选择中的脆弱性或一致性? – RyGuy

0

你的选择是不正确看到这个jsfiddle

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

刚编辑它。谢谢blurfus,但它似乎仍然工作没有单引号。 – RyGuy