【问题标题】:Fetch html data attribute with Vue js onchange使用 Vue js onchange 获取 html 数据属性
【发布时间】:2018-12-05 10:09:22
【问题描述】:

我想知道如何使用 Vue js 选择表单的数据属性。 这是选择

   <form method="post">
            <select @change="onChange" id="option" class="form-control 
                 sectionprice" required="" name="option">
        <option disabled="disabled" value="">Select Option</option>
                        <option data-type="Option" data-value="Mac Pro 128 GB" data-price="915.56">Mac Pro 128 GB</option><option data-type="Option" data-value="Mac Pro 254 GB" data-price="1300">Mac Pro 254 GB</option></select>
     <input name="realprice" type="hidden" :value="dataprice"/> 
      </form>
<script>
    var imagesection = new Vue({
        el: '#pricesection',
        data: {
            dataprice:'';
        },
        methods:{
        onChange(){
                this.dataprice = this.dataset.price
        },
        }

    })

</script>

在这里尝试实现的是选择一个选项,使用@change,我可以获得所选选项的数据价格。然后隐藏输入字段 realprice 的值将更新为 data-price 值。

如果有人帮助我,我将不胜感激。

【问题讨论】:

    标签: javascript html vue.js dataset custom-data-attribute


    【解决方案1】:

    我已经为你更新了,你将使用@change 和事件来获取选定的目标,

    <div id="pricesection">
    <form method="post">
       {{dataprice}}
       {{datavalue}}
      <select @change="onChange" id="option" class="form-control 
                     sectionprice" required="" name="option">
        <option disabled="disabled" value="">Select Option</option>
        <option data-type="Option" data-value="Mac Pro 128 GB" data-price="915.56">Mac Pro 128 GB</option>
        <option data-type="Option" data-value="Mac Pro 254 GB" data-price="1300">Mac Pro 254 GB</option>
      </select>
      <input name="realprice" type="hidden" :value="dataprice" />
    </form>
    </div>
    
    
    <script>
    new Vue({
      el: "#pricesection",
          data: {
            dataprice: '',
            datavalue: ''
          },
          methods: {
            onChange(e) {
              if (e.target.options.selectedIndex > -1) {
                const theTarget = e.target.options[e.target.options.selectedIndex].dataset;
                this.dataprice = theTarget.price
                this.datavalue = theTarget.value
              }
            }
          }
    })
    
    </script>
    

    【讨论】:

    • 我创建了jsfiddle,我认为你使用了错误的id,因为这个工作在这里检查小提琴链接
    • 我已经用你的元素 ID el: "#pricesection",再次更新了答案
    • 太棒了!它现在工作正常。非常感谢。如果我可以问,我有兴趣了解目标关键字中的内容。比如e.target.options,有没有像e.target.value或者e.target.attr之类的东西。我想了解更多。任何参考,我将不胜感激
    • 谢谢你,这个问题很好,希望Link对你有用,我想这是同一个问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-17
    • 2017-11-03
    • 2020-03-09
    • 2021-02-02
    • 1970-01-01
    • 2019-10-19
    • 2019-07-30
    相关资源
    最近更新 更多