为什么音译无法动态添加输入字段?

时间:2018-04-20 12:37:20

标签: javascript jquery html vue.js vue-component

对于存在的第一个输入字段,音译工作正常。但是当我添加@addNeWrow时,会出现输入字段,但音译正在起作用。我需要通过@addNewRow

为我添加的所有输入字段进行音译

我需要动态添加输入字段。在这种情况下,对于第一个输入字段,音译正在起作用。对于第二个输入字段,向前音译不起作用。因为音译id仅适用于一个输入字段。那么,我怎么能动态地改变输入字段和音译id的id呢? 因此,动态添加输入字段的代码是

   <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>

因此,每当我点击Add Another @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时,会出现一个输入字段,但音译无法正常工作

所以,当我点击@ addNewRow时,如何动态添加id。所以,我也可以获得输入字段的音译。

请帮我解答。

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

1 个答案:

答案 0 :(得分:0)

也许你可以尝试Objuect.assign(),你推到seziure的对象可能不是反应性。这只是我的想法,你只能尝试。

我错了......哈哈