Как запретить SAP BSP добавлять пробел в целочисленную переменную?

Фон

Я делаю некоторые изменения в существующей пользовательской странице 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 в двойных кавычках).

Я все еще думаю, что лишнего места, которое я получаю со стороны сервера, быть не должно, но исправление довольно простое: не будьте идиотом и не передавайте числа обратно на веб-страницу в виде чисел, а не строк:).

3 ответа

Решение

Удалите двойные кавычки вокруг целого значения:

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>

Попробуйте использовать шаблон строки с конденсатом:

<td>|<%=|{ condense( lv_qty ) }|>|</td>

Поскольку вы используете Z BSP, почему бы не определить lv_qty как строку типа атрибута страницы?

Тогда ваш дисплей должен быть просто номером.

Другие вопросы по тегам