如何使用jquery检查表单字段是否隐藏
我需要对表单字段执行一个简单的布尔条件。基本上我只需要知道字段#xxx是否隐藏 我认为这是正确的方法,但我不确定,因为我没有得到我想要的结果如何使用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
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()