【问题标题】:Unable to remove Textbox using jquery无法使用 jquery 删除文本框
【发布时间】:2020-04-07 11:31:33
【问题描述】:

我使用 asp.net core 创建了复选框:

<div class="form-group">
    <label asp-for="EthinicalGroups" class="control-label"></label><br />
    @{int i = 0;}
    @foreach (var item in ViewBag.EthinicalGroup)
    {
        <input name="EthinicalGroup" value="@item.Id" type="checkbox" id="EthinicalGroup[@i]" />
        <label>@item.Name</label><br />
        i++;
    }
</div>

选中复选框时我添加了一个文本框,取消选中我试图删除一个复选框但无法删除一个复选框。

$('form input[type=checkbox]').change(function (e) {
    e.preventDefault();

    if ($(this).prop("checked") == true) {
        var className = $(this).attr('id');
        b = className + "value";
        $(this).after('&nbsp;<input type="text" id="'+b+'"  size="4" name="Value">');

    }
    else {
        var className = $(this).attr('id');
        b = className + "value";
        $("#"+b).remove();
    }
});

如何在取消选中复选框时删除文本框。

【问题讨论】:

  • 我认为$(this).attr('name') 应该是$(this).attr('id'),因为所有复选框的名称都相同。
  • 抱歉不起作用
  • EthinicalGroup[1] 其中 1,2,3 是 i 的值,id="abc" 工作正常,但 id="'+b+'" 不能用于删除文本框
  • 请检查我的答案,如果有什么可以帮助的,请告诉我
  • 你的回答没有帮助........虽然使用动态名称 remove() 函数不起作用

标签: javascript c# jquery asp.net-core


【解决方案1】:

您需要使用复选框的value 属性来选择文本框,因为name 对于所有复选框都是相同的:

$('form input[type=checkbox]').change(function (e) {
    e.preventDefault();

    if ($(this).prop("checked") == true) {
        var className = $(this).attr('value');
        b = className + "value";
        $(this).after('&nbsp;<input type="text" id="'+b+'"  size="4" name="Value">');

    }
    else {
        var className = $(this).attr('value');
        b = className + "value";
        $("#"+b).remove();
    }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多