我的要求是有一个文本框,只能接受最多两位小数的 float 。
如何解决以下问题:
- 我无法输入 20.01 之类的内容,但可以输入 20.10。 所以当你开始在小数点后输入 0 时,它不会让你 去做。
- 当我开始输入 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>
最佳答案
我确信您已经完成了此操作,但是您看过documentation samples吗? ? 看起来它应该做你想做的事。 如果没有,您始终可以编写一个简单的函数来根据正则表达式检查输入的值。
关于javascript - sap.m.Input 具有 Float 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36410385/