Javascript jQuery,输入具有相同数据属性值但有一个隐藏的元素,在keyup上填充相同的数据
jQuery,输入具有相同数据属性值但有一个隐藏的元素,在keyup上填充相同的数据 我在一个页面上有两个表单,其中包含通过.NETMVC从数据库动态创建的表单字段。 我有一个可见的形式和一个隐藏的形式 如果我知道元素类或Id,我知道如何在键控时将值从一个表单字段复制到另一个表单字段。动态创建的字段并非如此。我不能保证每个表单中的所有字段都会以相同的顺序返回 因此,我所做的是创建一个“data”属性,并在输入字段中输出“Model.Name”。在我的例子中,我很幸运,这两个表单的字段具有相同的“Model.Name”值。所以我可以在这方面做一场比赛。但是由于表单是动态构建的,我需要一些事情发生,并且需要一些指针Javascript jQuery,输入具有相同数据属性值但有一个隐藏的元素,在keyup上填充相同的数据,javascript,jquery,asp.net-mvc,Javascript,Jquery,Asp.net Mvc,jQuery,输入具有相同数据属性值但有一个隐藏的元素,在keyup上填充相同的数据 我在一个页面上有两个表单,其中包含通过.NETMVC从数据库动态创建的表单字段。 我有一个可见的形式和一个隐藏的形式 如果我知道元素类或Id,我知道如何在键控时将值从一个表单字段复制到另一个表单字段。动态创建的字段并非如此。我不能保证每个表单中的所有字段都会以相同的顺序返回 因此,我所做的是创建一个“data”属性,并在输入字段中输出“Model.Name”。在我的例子中,我很幸运,这两个表单的字段具有相同的“
如何获得匹配的表单字段
不知道这是否有帮助,但您可以动态地向元素添加一个类或id,然后像这样访问:
$(".bodyWrapper").on("change", ".form-control", event => {
let value = $('.dynamicValueInput').val();
$('.dynamicValueInputCopy').val(value);
console.log(`body-input-has-changed`);
});
//试试这个:)
var mainForm=$(“.masterFieldWrapper”);
变量输入类型=$(“输入[type='text']”);
var Totalinputs=mainForm.find(输入类型).length;
var可视输入=总输入/2;
var auto_fulfill=函数(){
对于(i=Visible_inputs;i假设表单是相同的,您可以选择所有的输入,找到您用$键入的索引(此)然后使用该索引在另一个表单中找到正确的字段来填充值。这实际上有一个问题。我不一定假设表单将以完全相同的顺序返回。我考虑了索引解决方案,但后来出现了一个问题,我们发现表单可能无法以相同的顺序返回。The它们之间唯一的一致性是Model.Name值。这不就是元素的索引吗。就像我在上面的评论中提到的,我不能假设每个元素的索引都是相同的顺序。这就是为什么我希望使用数据属性值。
$(".masterFieldWrapper input").each(function() {
var fieldVal = $(this).val();
var fieldDataAttr = $(this).data("myattribute");
console.log(fieldDataAttr);
$(this).keyup(function() {
$(this).parent('.masterFieldWrapper').find(".subFieldWrapper input").data("myattribute").val($(this).val());
});
});
$(".bodyWrapper").on("change", ".form-control", event => {
let value = $('.dynamicValueInput').val();
$('.dynamicValueInputCopy').val(value);
console.log(`body-input-has-changed`);
});
//Try this :)
var mainForm = $(".masterFieldWrapper");
var Input_type = $("input[type='text']");
var Totalinputs = mainForm.find(Input_type).length;
var Visible_inputs = Totalinputs/2;
var auto_fulfill = function(){
for(i=Visible_inputs; i<Totalinputs;i++){
Input_type.eq(i).val(Input_type.eq(i-Visible_inputs).val());
}
}
Input_type.keyup(function(){
auto_fulfill();
})