バックグラウンド
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ページに戻してください:)。