gpt4 book ai didi

javascript - Razor- 给 radioButtonFor 一个 'attribute'

转载 作者:行者123 更新时间:2023-12-04 09:25:37 27 4
gpt4 key购买 nike

我有这样定义的单选按钮

 @foreach (var actionType in partActionTypes)
{
<td>
@Html.RadioButtonFor(x => x.Parts[i].SelectedActionType, actionType, new { name = "partRadio" })
</td>
}
在我尝试将“名称”设置为“partRadio”的地方,(我尝试做 @nameName 但两个选项都不起作用。
在我的 JQuery 代码中,单击复选框后克隆了一行,
该代码看起来像这样
 $(document).ready(function () {
$('.tr_clone input.part-class').change(function () {

let Id = $(this).attr('id');
let partId = $(this).attr('data-partId');

if ($(Id).is(":checked")) {
// remove cloned row

$("#AllTxt").hide();
$("#editQty").show();
}
else {
var $tr = $(this).closest('.tr_clone');
var $clone = $tr.clone();
$clone.find('td');
$tr.after($clone);
$($clone).find(".part-class").hide();
$clone.find('input[type="radio"]').attr("name", function (el) { return el.name + 'clone' });
$("#AllTxt").show();
$("#editQty").hide();
}

});
});
它应该只是将“克隆”附加到“partRadio”,但 HTML 将名称呈现为
'name = undefinedclone`
为什么是这样?

最佳答案

问题是因为 attr() 的第一个参数处理函数是元素的索引,而不是元素本身的引用。
要解决此问题,您需要使用提供给函数的第二个参数正确接受该元素,该参数是 name 的当前值。属性:

$clone.find('input[type="radio"]').attr("name", function (i, n) { 
return n + 'clone'
});
请注意,这可以使用箭头函数来缩短:
$clone.find('input[type="radio"]').attr("name", (i, n) => n + 'clone');

关于javascript - Razor- 给 radioButtonFor 一个 'attribute',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63022673/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com