1

我们的库存网页是由其他人用 php 编写的。我正在尝试将 jquery 调用放入网页中,只要有人扫描条形码,就会出现描述。当我在 jsbin.com 上进行测试时,一切正常,但我无法让它在野外运行。jquery src 部分位于 /body 之前的页脚中。似乎它们没有被 ?php 标签包裹,所以我没有加入回声。

</form>
    <script src="http://code.jquery.com/jquery-latest.js"></script>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js">    </script>
    <script src="inventory.js"></script>
</body>

问题可能出在javascript中。

var barcodes ={
    "000-091-M”:”Hardware - Mini Gender Changer Male to Male",
    "000-092-M”:”Hardware - Mini Gender Change Female to Female",
    "000-DVI-FF”:”Hardware - Dual Link DVI-I Female to Female Coupler Adapter",
};

$("textarea[id=details1]").on("input", function(){ //on value changed
    this.value; //text in textarea details
    $("textarea[id=description1]").text(barcodes[this.value]); //lookup barcode and return description into description1
});

这影响的 html 部分将是

<td><textarea id="quantity1" name="quantity1" cols="2" rows="1"></textarea></td>
<td><textarea id="details1" name="details1" cols="25" rows="1"></textarea></td>
<td><textarea id="description1" name="description1" cols="35" rows="1"></textarea></td>
<td><textarea id="message1" name="message1" cols="35" rows="1"></textarea></td>

当他们将条形码扫描到 details1 时,它应该使用描述自动填充 description1。

我做错了什么?

4

1 回答 1

0

没有看到 HTML 不能确定,但​​它应该看起来像

$("#details1").change(function(){ //on value changed
    //text in textarea details
    $("#description1").text(barcodes[$("#details1").val()]); //lookup barcode and return description into description1
});

.on 的第一个参数应该是您期望的事件类型。.change() 查找更改事件。虽然有一个输入事件,但这个线程有一个很好的警告,说明为什么不使用它。更改通常是绑定到的最佳事件

编辑

好的,根据您的评论,听起来您使用 PHP 在页面加载时填充字段。如果你这样做,JS 不会触发任何事件。所以我们需要在页面加载时触发 JS 函数(另一种解决方案是通过 AJAX 加载)

$(document).ready(function () {
    var val = $("#details1").val();
    if(val !== '') $("#description1").text(barcodes[val]);
});
于 2013-10-07T18:58:06.503 回答