簡體   English   中英

如何使輸入->值->類型->搜索動態?

[英]How to make Input->value->type->search dynamic?

通常一個普通人的名字不包含數字,所以我添加了這個search屬性來防止帶有 RegEx 的數字到我的Input元素:

type: new sap.ui.model.type.String({}, { search: "^[^0-9]+$" })

但公司名稱應允許使用數字。 那么如何使這個search值動態化呢?
可視化它:

  1. “dwd3”應該是“公司”以外的任何內容時無效
    不是公司
  2. 當它是“公司”時,“dwd3”應該是有效的
    公司

這是我的最小示例-到目前為止我嘗試過的內容已被注釋掉,因為它不起作用(導致數字始終有效)。

 // Set data model let data = { "salutation": "Company", "name": "" }; let oModel = new sap.ui.model.json.JSONModel(); oModel.setData(data); // Create page let oPage = new sap.m.VBox(); oPage.setModel(oModel); // Add salutation input oPage.addItem( new sap.m.Input({ value: { path: "/salutation" } }) ); // Add name input oPage.addItem( new sap.m.Input({ value: { type: new sap.ui.model.type.String({}, { minLength: 2, maxLength: 40, search: "^[^0-9]+$" /* not working... search: { parts: [ "/salutation", ], formatter: (salutation) => salutation === "Company"? "^.*$": "^[^0-9]+$" } */ }), path: "/name", }, required: true, }) ); // Attach validation handlers sap.ui.getCore().attachValidationError(function(oEvent) { oEvent.getParameter("element").setValueState(sap.ui.core.ValueState.Error); }); sap.ui.getCore().attachValidationSuccess(function(oEvent) { oEvent.getParameter("element").setValueState(sap.ui.core.ValueState.None); }); // Insert page oPage.placeAt("content");
 <script id='sap-ui-bootstrap' type='text/javascript' src='https://sapui5.hana.ondemand.com/resources/sap-ui-core.js' data-sap-ui-libs="sap.m,sap.ui.commons,sap.ui.table" data-sap-ui-theme="sap_bluecrystal"> </script> <body class='sapUiBody'> <div id='content'></div> </body>

如果一個字段的驗證規則依賴於另一個字段的值,您可以使用change之類的事件(有或沒有valueLiveUpdate=true )進行驗證。

類型應該是不依賴於外部生命的東西。

您可以做的另一件事是對稱呼字段的change事件做出反應,並將輸入字段的類型交換為名稱(取決於稱呼的值)

PS:(編輯)老實說,我不會將名稱字段限制為它可能包含或不包含的任何內容。 根據特定國家/地區的法律,您可能被允許使用數字...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM