javascript - 无法使用 js 更新事件的文本字段 - 未定义

标签 javascript java spring-mvc

我的目的是当我更改选择选项时使用js设置输入的值。但它的值未定义

这是我的 html (jsp) 文件。

<body>
        <center><h1>Ventas</h1>
            <table border="2">
                <tr>                    
                    <th>Producto</th>
                    <th>Precio</th>
                </tr>
                <tr>
                    <th>
                        <select name="productos" onchange="ponerPrecio(event)">   
                            <c:forEach items="${product}" var="prdct">
                                <option value="${prdct.idProducto}" data="${prdct.precioUnidad}">${prdct.nombre}</option>
                            </c:forEach>
                        </select>
                        <td><input type="text" name="precio" id="price" value="" readonly></input></td> 
                    </th>
                </ tr>  
                <script> 

                    function ponerPrecio(e) {

                        var precio = e.target.data;
                        document.getElementById("price").value = precio ;

                    }
                </script>        
            </table>
                    <input type="button" name="begin" value="Inicio"onclick="window.location.href='principal.htm'" />
        </center>    
    </body>

从 ${product} 我得到了我的数据库的所有项目来使用它。这个想法是使用“data”来更新名称为precio的输入,其值为${prdct.precioUnidad}。

最佳答案

使用data-price而不是data属性

<center>
    <h1>Ventas</h1>
    <table border="2">
        <tr>                    
            <th>Producto</th>
            <th>Precio</th>
        </tr>
        <tr>
            <th>
                <select name="productos" onchange="ponerPrecio(event)">   
                    <c:forEach items="${product}" var="prdct">
                        <option value="${prdct.idProducto}" data-price="${prdct.precioUnidad}">${prdct.nombre}</option>
                        <option value="2" data-price="10">Custom Item</option>
                    </c:forEach>
                </select>
            </th>
            <td><input type="text" name="precio" id="price" value="" readonly></input></td> 
        </tr>        
    </table>
    <input type="button" name="begin" value="Inicio" onclick="window.location.href='principal.htm'" />

    <script> 
        function ponerPrecio(e) {
            var precio = e.target.options[e.target.selectedIndex].dataset.price;
            document.getElementById("price").value = precio;
        }
    </script>  
</center>    

关于javascript - 无法使用 js 更新事件的文本字段 - 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60244249/

相关文章:

javascript - 这是我应该使用 Javascript 原型(prototype)继承看到的行为吗?

javascript - 设置心电图纸质网格间隔(highcharts.js)

java - 如何在 JMockit 模拟实例中保留方法注释

java - java中数据库表更新时如何立即更新jcombobox

spring - 自动连线……不止一个?

javascript - 从 JavaScript 访问 Spring 模型变量

javascript - Velocity/Java 脚本形式不保留输入

java - 如何以编程方式实现谷歌地点自动完成

java - 请推荐Spring MVC 3.0使用什么导航策略

javascript - PHP日期格式的倒计时