Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.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 jQuery,输入具有相同数据属性值但有一个隐藏的元素,在keyup上填充相同的数据_Javascript_Jquery_Asp.net Mvc - Fatal编程技术网

Javascript jQuery,输入具有相同数据属性值但有一个隐藏的元素,在keyup上填充相同的数据

Javascript jQuery,输入具有相同数据属性值但有一个隐藏的元素,在keyup上填充相同的数据,javascript,jquery,asp.net-mvc,Javascript,Jquery,Asp.net Mvc,jQuery,输入具有相同数据属性值但有一个隐藏的元素,在keyup上填充相同的数据 我在一个页面上有两个表单,其中包含通过.NETMVC从数据库动态创建的表单字段。 我有一个可见的形式和一个隐藏的形式 如果我知道元素类或Id,我知道如何在键控时将值从一个表单字段复制到另一个表单字段。动态创建的字段并非如此。我不能保证每个表单中的所有字段都会以相同的顺序返回 因此,我所做的是创建一个“data”属性,并在输入字段中输出“Model.Name”。在我的例子中,我很幸运,这两个表单的字段具有相同的“

jQuery,输入具有相同数据属性值但有一个隐藏的元素,在keyup上填充相同的数据

我在一个页面上有两个表单,其中包含通过.NETMVC从数据库动态创建的表单字段。 我有一个可见的形式和一个隐藏的形式

如果我知道元素类或Id,我知道如何在键控时将值从一个表单字段复制到另一个表单字段。动态创建的字段并非如此。我不能保证每个表单中的所有字段都会以相同的顺序返回

因此,我所做的是创建一个“data”属性,并在输入字段中输出“Model.Name”。在我的例子中,我很幸运,这两个表单的字段具有相同的“Model.Name”值。所以我可以在这方面做一场比赛。但是由于表单是动态构建的,我需要一些事情发生,并且需要一些指针

  • 我需要知道如何将字段输入值从可见表单字段复制到具有相同“数据”属性值的匹配隐藏表单字段。我不一定知道实际的数据属性值,因为输入字段是动态创建的。
    如何获得匹配的表单字段
  • 我有一个基本的JS小提琴设置。

    HTML


    不知道这是否有帮助,但您可以动态地向元素添加一个类或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();
    })