Javascript 单击单选按钮一次,但输入框生成了多个单选按钮

Javascript 单击单选按钮一次,但输入框生成了多个单选按钮,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我正在生成一个带有单选按钮选择的动态输入框。 我正在做,但问题就在那里 使用选择框生成单选按钮html,然后从单选按钮, 我试图在选择最后一个单选按钮时只生成一个输入框 问题:当我点击一次单选按钮时,为什么输入框会生成超过1个 jsfiddle: Jquery HTML 这是一种预期行为,因为您正在将元素追加到目标元素中 尝试在此上下文中使用.html来完成任务 $("input[data-target='generateInput']").on('click', function (e) {

我正在生成一个带有单选按钮选择的动态输入框。 我正在做,但问题就在那里

使用选择框生成单选按钮html,然后从单选按钮, 我试图在选择最后一个单选按钮时只生成一个输入框

问题:当我点击一次单选按钮时,为什么输入框会生成超过1个

jsfiddle:

Jquery

HTML


这是一种预期行为,因为您正在将元素追加到目标元素中

尝试在此上下文中使用.html来完成任务

$("input[data-target='generateInput']").on('click', function (e) {
    var targetId = $(this).parent("div").attr("id");
    var t = $("div#input_" + targetId).html("<input type='text' name='aa' />");
});
或者如果已经附加了输入,则编写一个条件来阻止代码流

$("input[data-target='generateInput']").on('click', function (e) {
    var targetId = $(this).parent("div").attr("id");
    var elem = $("div#input_" + targetId);
    if(elem.find('input[name=aa]').length) { return; }
    var t = elem.append("<input type='text' name='aa' />");
});

这是一种预期行为,因为您正在将元素追加到目标元素中

尝试在此上下文中使用.html来完成任务

$("input[data-target='generateInput']").on('click', function (e) {
    var targetId = $(this).parent("div").attr("id");
    var t = $("div#input_" + targetId).html("<input type='text' name='aa' />");
});
或者如果已经附加了输入,则编写一个条件来阻止代码流

$("input[data-target='generateInput']").on('click', function (e) {
    var targetId = $(this).parent("div").attr("id");
    var elem = $("div#input_" + targetId);
    if(elem.find('input[name=aa]').length) { return; }
    var t = elem.append("<input type='text' name='aa' />");
});
使用.one'click..'-仅添加一次

$("input[data-target='generateInput']").one('click', function(e) {
    var targetId= $(this).parent("div").attr("id");
    console.log("#input_"+targetId);
    var t = $("div#input_"+targetId).append("<input type='text' name='aa' />"); 
});
旁注:如果在一个页面上单击两次,它将生成重复的ID

使用.one'click..'-仅添加一次

$("input[data-target='generateInput']").one('click', function(e) {
    var targetId= $(this).parent("div").attr("id");
    console.log("#input_"+targetId);
    var t = $("div#input_"+targetId).append("<input type='text' name='aa' />"); 
});

旁注:如果在一个问题上单击两次,它将生成重复的ID

html似乎与问题无关..请签入JSFIDLE链接html似乎与问题无关..请签入JSFIDLElink@Sonu很高兴能帮上忙@Sonu很乐意帮忙。。!谢谢你的努力。但通过@Rajaprabhu Aravindasamy ans解决了:谢谢你的努力。但通过@Rajaprabhu Aravindasamy ans解决了: