1

バックグラウンド

Windows RT タブレットでの使いやすさを向上させるために、既存のカスタム BSP ページにいくつかの変更を加えています。

入力フィールド (現在は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 を二重引用符で囲みます)。

サーバー側から取得した余分なスペースはそこにあるべきではないとまだ思いますが、修正は非常に簡単です。馬鹿にならず、数字を文字列ではなく数字としてWebページに戻してください:)。

4

3 に答える 3

2

condense で文字列テンプレートを使用してみてください:

<td>|<%=|{ condense( lv_qty ) }|>|</td>
于 2013-11-01T12:53:30.493 に答える
1

整数値を囲む二重引用符を削除します。

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>
于 2013-11-03T21:54:33.803 に答える
0

Z BSP を使用しているため、lv_qty をページ属性タイプ文字列として定義しないのはなぜですか?

次に、ディスプレイは数字だけになるはずです。

于 2013-11-01T16:09:38.573 に答える