sap.m.输入浮点类型

sap.m.Input with Float type

本文关键字:类型 输入 sap      更新时间:2023-12-12

我的要求是有一个文本框,只能接受最多两位小数的浮点数字。

如何解决以下问题:

  1. 我无法键入20.01之类的内容,但我可以键入20.10。所以当你开始在小数点后键入0时,它不会让你这样做
  2. 当我开始键入66.66->之后,如果你按6键时间越长,它就开始四舍五入最后一个小数。我的要求是不允许用户在最后两个小数点后键入任何其他内容数字

以下是我的代码:

sap.ui.getCore().setModel(new sap.ui.model.json.JSONModel(), "myModel");
sap.ui.getCore().getModel("myModel").setProperty("/Amount")
var textbox = new sap.m.Input({
  valueLiveUpdate: true,
  type: "Number",
}).placeAt("content");
textbox.bindProperty("value", {
  path: "myModel>/Amount",
  type: new sap.ui.model.type.Float({
    minIntegerDigits: 1,
    maxFractionDigits: 2,
    groupingEnabled: false
  }, {
    minimum: 1,
    maximum: 2000
  })
});
textbox.attachValidationError(function(e) {
  e.getParameter("element").setValueState("Error");
  e.getParameter("element").setValueStateText(e.getParameter("message"));
});
textbox.attachParseError(function(e) {
  e.getParameter("element").setValueState("Error");
  e.getParameter("element").setValueStateText(e.getParameter("message"));
});
textbox.attachFormatError(function(e) {
  e.getParameter("element").setValueState("Error");
  e.getParameter("element").setValueStateText(e.getParameter("message"));
});
textbox.attachValidationSuccess(function(e) {
  e.getParameter("element").setValueState("Success");
});
<!DOCTYPE html>
<html>
<head>
  <script src="https://openui5.hana.ondemand.com/resources/sap-ui-core.js" id="sap-ui-bootstrap" data-sap-ui-theme="sap_bluecrystal" data-sap-ui-libs="sap.m"></script>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
  <div id="content" />
</body>
</html>

我相信您已经完成了这项工作,但您看过文档示例吗?看起来它应该做你想做的事。如果没有,您可以始终编写一个简单的函数,根据正则表达式检查Input的值。

sap.MaskInput控件允许用户以特定格式输入数据。

API:https://openui5.hana.ondemand.com/#docs/api/symbols/sap.m.MaskInput.html

样品:http://jsbin.com/haciwexako/1/edit?html,js,输出

Demokit:https://openui5.hana.ondemand.com/explored.html#/sample/sap.m.sample.MaskInput/preview