Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.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 从html表单中添加和删除元素的最佳方法_Javascript_Php_Jquery_Html - Fatal编程技术网

Javascript 从html表单中添加和删除元素的最佳方法

Javascript 从html表单中添加和删除元素的最佳方法,javascript,php,jquery,html,Javascript,Php,Jquery,Html,我想创建一个带有不同输入元素的简单html表单。问题和每个问题的可能选项存储在数据库中。其思想是使用PHP呈现表单和子输入元素,因此一个简单的PHP函数将根据是type=“text”还是type=“radio”来处理排版: 到目前为止,div元素已经移除。但是,当单击与Female对应的单选按钮时,我想将元素放回原始位置。我在标题中添加了,就在前面的js脚本下面 <script type='text/javascript' src='scripts/enable_elements.js'&

我想创建一个带有不同输入元素的简单html表单。问题和每个问题的可能选项存储在数据库中。其思想是使用PHP呈现表单和子输入元素,因此一个简单的PHP函数将根据是
type=“text”
还是
type=“radio”
来处理排版:

到目前为止,div元素已经移除。但是,当单击与
Female
对应的单选按钮时,我想将元素放回原始位置。我在标题中添加了,就在前面的js脚本下面

<script type='text/javascript' src='scripts/enable_elements.js'></script> 

但这一切都不起作用。我想问题可能是my
ready(函数)
s在开始时只加载一次,然后进入睡眠状态?我是否应该以不同的结构构建表单?

您需要为调用函数并显示或隐藏字段的阴性和阳性复选框创建一个EventHandler

您不想
删除()
,而是想
隐藏()

您还需要处理单击
#3

注意:我保留了“disabled”属性,但实际上您不需要它,因为它在不可选择时将被隐藏


如果删除
#5
,则它将丢失,无法再次显示。所以点击雄性,然后点击雌性,再点击雄性,再点击雌性。。。不起作用。

如果以后要重新添加元素,为什么要删除它?把它藏起来就没有意义了吗?根据您想要实现的目标,…ready函数确保在加载DOM后加载函数。它不会像你说的那样让任何东西进入睡眠。
<script>
$(document).ready(function(){
  $("[disabled=disabled]").parent().remove();
});
</script>
<script type='text/javascript' src='scripts/enable_elements.js'></script> 
// enable_elements.js

$(document).ready(function(){

    $('#4').click(function(){
    $( '#5' ).prop( "disabled", false );
    });

});
$(document).ready(function(){
    $("#5").hide();
});
$('#3').click(function(){
    $( '#5' ).attr("disabled", "disabled").hide();
});
$('#4').click(function(){
    $( '#5' ).attr("disabled", "").show();
});