今天在jsp页面上取条码号,由于条码号是纯数字,在页面上直接用${book.barcode}取出来的没有任何问题,但是把jstl取出来的值当做js方法参数传递进去,取值就不对。具体代码如下:
${book.orderno},${book.bookdept}
<c:if test="${book.bookstatus == 1}">
<a href="javascript:void(0)"
onclick="cancleBook(${book.orderno},${book.bookdept})">取消预约</a>
</c:if>
页面效果截图如下:
页面上的值是正常显示。通过js参数传递过去后,显示不正常。
修改方案如下:在js的方法参数中,取值时候加上单引号。
具体修改如下:onclick=”cancleBook(‘book.orderno′,′{book.bookdept}’)”
产生问题原因很可能是:jstl把取出来的值传给js时当做八进制了(没有加单引号),因为“0001001”转化为十进制后刚好是513.
但问题是:为什么在jsp页面没有转化为八进制,而在js方法的参数中转化了八进制? 网上好像有人说,只要是数字且以0开头,js会自动当做八进制进行转化。但是为什么这么做呢?
====结论:以后传递纯数字类型时候,尽量加单引号,避免产生不必要的bug。
时间: 2024-10-16 07:55:07