Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 显示或隐藏表单元素_Javascript_Jquery_Ruby On Rails - Fatal编程技术网

Javascript 显示或隐藏表单元素

Javascript 显示或隐藏表单元素,javascript,jquery,ruby-on-rails,Javascript,Jquery,Ruby On Rails,我有一个html表单-在一个文本字段上,如 <input type = "text" name = "age" value = "" id = "txt_age"> 关于年龄的价值,我必须展示这个元素- <select name = "married"> <option value = "Yes">Yes</option> <option value ="No">No</option> </select>

我有一个html表单-在一个文本字段上,如

<input type = "text" name = "age" value = "" id = "txt_age">
关于年龄的价值,我必须展示这个元素-

<select name = "married">
  <option value = "Yes">Yes</option>
  <option value ="No">No</option>
</select>
若年龄>18,则已婚字段将显示,否则将隐藏它。此年龄>18的条件存储在数据库中。当年龄值更改时,已婚字段将切换显示/隐藏。 我如何使用javascript/jquery实现它。请建议

关于更多信息,所有这些字段都是动态生成的;随着年龄的增长,当条件满足时,将显示“查找”字段,单位为DB

我可以这样想吗- 本例中的已婚字段将查找年龄变化值。然后相应地已婚字段将隐藏/显示自己。但问题是已婚字段如何观察年龄或调用javascript函数。
很抱歉,没有解释完整的问题。

添加id=选择并使用类似的内容

$("#txt_age").blur(function() {
    if(parseInt($(this).val() > 18) {
        $("#married").show();
    } else {
        $("#married").hide();
    }
});
试试这个¬e

避免id=txt\u之间的空格 这将有助于:

var $foo = $('select[name="married"]');
$foo.hide(); // in start always hide

$('#txt_age').on('blur', function() {
   if(parseInt(this.value)>18){
       $foo.hide();
   } else {
       $foo.show();
   }

});

如果您需要在服务器端进行计算,请调用服务器端,因为条件存储在txt_age的更改事件上的DB方法中。实际上,它非常难以捉摸,focus可能会更好地发布年龄。返回值可以是一个布尔值,用于指示是否已启用或未添加ID。一个更好的解决方案,因为我想你的用户界面可能比这更复杂,可能包括一个完整表单的数据发布在每次更改上,返回值可能是一个字典,其中每个键是一个元素的ID,还有几个值指示它是否已启用和可见。如果只有阈值在DB 18上,在这种情况下,由于不同国家的法律可能不同,您可以简单地使用一个隐藏字段,填充DB的值作为比较的操作数,甚至在服务器端的javascript代码中使用一个简单的替换。嗨,Adriano,您能解释一下您想说什么吗。这对我很有帮助。如果您不需要复杂的使用数据库中存储的规则进行计算您只需选择一个发布的解决方案。18年的阈值不能硬编码,因此您可以使用一个隐藏的文本字段填充DB中的值,并与之进行比较。类似于:如果parseInt$txt_age.val>=$min_age_get_married where min_age_get_married在服务器端用正确的值填充。您好,小问题,请看下面的代码:它不是id,而是给定的name属性:我在答案中注意到了这一点。使用name会使OP易受页面上多个同名元素的影响。最好换个身份证。对不起,我不是在找这个。