Background
我正在对现有的自定义BSP页面进行一些更改,以提高Windows RT平板电脑的可用性。
我被要求更改输入字段(当前type="text"
),以便在有人开始键入值时出现数字键盘,而不是整个键盘。 这可以通过将输入字段类型更改为type="number"
我的问题
刷新页面后,(由于排序,从下一页退出等)。用作输入字段中值的整数字段返回时附加了一个额外的空格:
我的代码
data: lv_qty type i value 3.
<tr>
<td><%=lv_field1%></td>
<td><%=lv_fieldn%></td>
<td>|<%=lv_qty>|</td>
</tr>
生成的 HTML:
<tr>
<td>Value1 </td>
<td>Value2 </td>
<td>
|3 | <!-- Note the extra space here! -->
</td>
</tr>
所以我总是得到额外的空间; 但它只会导致问题,当尝试使用它与<input type="number">
BSP可能还没有真正针对HTML 5进行更新,我只是遇到了这个问题,但是我可以在服务器端做些什么来防止这种情况?
客户端我正在考虑使用 JavaScript 来修剪多余的空间,但这似乎是一种不必要的解决方法。
编辑
好的,在尝试简化问题的代码时,我实际上混淆了问题:
当我尝试将lv_qty
用作type="number"
的输入字段,然后出于任何原因刷新页面时,我真正的问题就出现了。
本例中的代码如下:
data: lv_qty type i.
<tr>
<td><%=lv_field1%></td>
<td><%=lv_fieldn%></td>
<td>
<input type="number" value="<%=lv_qty%>">
</td>
</tr>
这仍然是简化的,但问题变得相当明显:(我将值lv_qty放在双引号中)。
我仍然认为我从服务器端获得的额外空间不应该存在,但解决方法非常简单:不要成为白痴,将数字作为数字传递回网页,而不是字符串:)。
尝试使用带有压缩的字符串模板:
<td>|<%=|{ condense( lv_qty ) }|>|</td>
删除整数值两边的双引号:
data: lv_qty type i.
<tr>
<td><%=lv_field1%></td>
<td><%=lv_fieldn%></td>
<td>
<input type="number" value=<%=lv_qty%> > <!--No double quotes here-->
</td>
</tr>
既然您使用的是 Z BSP,为什么不lv_qty定义为页面属性类型字符串?
那么你的显示器应该只是数字。