繁体   English   中英

如何在vue js html中动态地向我的输入字段提供ID作为我的音译ID的ID?

[英]How to dynamically provide the id to my input field as that of my transliteration id in vue js html?

我正在做一个项目。 在一种情况下,我需要动态添加输入字段。 在这种情况下,对于第一个输入字段,音译是有效的。 从第二个输入字段开始,音译不起作用。 因为音译ID仅适用于一个输入字段。 因此,如何动态更改输入字段的ID和音译ID? 我是javascript的初学者,无法解决问题。 请帮我。

因此,用于动态添加输入字段的代码是

   <div class="row" v-for="(book, index) in seziure" :key="index">


    <div class="col-md-4">
        <div class="form-group label-floating">
            <label class="control-label">Date </label>
            <input type="date" class="form-control" v-model="book.date" >
        </div>
    </div>
    <div class="col-md-8">
        <div class="form-group label-floating">
            <label class="control-label"> Details</label>
            <input type="text" class="form-control" v-model="book.details" id="transliterateTextarea2">
        </div>
    </div>

</div>
<a @click="addNewRow">Add Another </a>

因此,每当我单击添加另一个@addNewRow时,我都会得到一个新的输入字段,但是音译不起作用。 我认为出现问题是因为id =“ transliterateTextarea2”仅适用于一个输入字段。

因此,当我单击@addNewRow时,如何更改音译ID。

我的剧本是

addForm = new Vue({
el: "#addForm",
  data: {
          seziure:[
          {
             date: null,
             details: null,

          },
        ],
    },
methods: {
      addNewRow: function() {
          this.seziure.push({ date: null, details: null, });
        },
},
})

我的音译脚本是

 <script type="text/javascript">

      // Load the Google Transliterate API
      google.load("elements", "1", {
            packages: "transliteration"
          });

      function onLoad() {
        var options = {
            sourceLanguage:
                google.elements.transliteration.LanguageCode.ENGLISH,
            destinationLanguage:
                [google.elements.transliteration.LanguageCode.MALAYALAM],
            shortcutKey: 'ctrl+g',
            transliterationEnabled: true
        };

        // Create an instance on TransliterationControl with the required
        // options.
        var control =
            new google.elements.transliteration.TransliterationControl(options);

        // Enable transliteration in the textbox with id
        // 'transliterateTextarea'.
        var ids = [ "transliterateTextarea2" ];
        control.makeTransliteratable(ids);
      }
      google.setOnLoadCallback(onLoad);
    </script>

因此,在这里我添加了音译ID作为var ids = [ "transliterateTextarea2" ]; 该ID实际上仅适用于第一个输入字段。 因此,当我单击@addNewRow时,输入字段出现,但音译不起作用

因此,当我单击on @ addNewRow时,如何动态添加ID。 因此,我也可以为该输入字段获得音译。

请帮我一个答案。

我需要为每个要添加的新输入字段进行音译工作。

请在相同的帮助。 希望有所帮助

首先,您要创建非唯一ID,这在html中是错误的。 您应该使用:id="'transliterateTextarea_' + index" 但是,用于音译的初始化脚本也不会在每次添加元素时不重新运行它而注册新的输入元素。 将整个音译脚本变成一个函数,然后在addNewRow添加如下内容:

this.seziure.push({ date: null, details: null, });
this.$nextTick(()=>{yourTransliterationInitializingFunction(this.seziure.length)})

并在您的yourTransliterationInitializingFunction确保使用正确的ID(这就是我们在此处传递参数的原因):

function yourTransliterationInitializingFunction(idNo){
  ...
  var ids = [ "transliterateTextarea_" + idNo ];
  ...
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM