【发布时间】:2014-07-17 04:03:34
【问题描述】:
我有四个带有名称、年龄、城市和电话号码标签的文本字段。如果它留空,我必须验证它。它应该提醒我填写。如何在 sapui5 中使用必填字段验证器验证文本字段?
【问题讨论】:
标签: javascript jquery sapui5
我有四个带有名称、年龄、城市和电话号码标签的文本字段。如果它留空,我必须验证它。它应该提醒我填写。如何在 sapui5 中使用必填字段验证器验证文本字段?
【问题讨论】:
标签: javascript jquery sapui5
您可以简单地编写一个函数来获取文本字段并检查它们的值。
这可能如下所示:
function validateTextFieldValues() {
// this function gets the first textfield
var nameTextField = sap.ui.getCore().byId("idOfTheTextFieldContaingTheName");
//this function checks its value, you can insert more checks on the value
if(nameTextField.getValue() === "") {
alert("Please enter a name.");
}
// ...
// the same for the other fields
}
然后就可以在按钮点击上绑定功能了,比如创建按钮的时候:
new sap.ui.commons.Button({
// your buttonconfiguration
click: function(){
validateTextFieldValues();
}
});
此外,TextField 有一个名为 valueState 的属性。
与其事件liveChange 相关,有机会在输入时验证输入:
new sap.ui.commons.TextField({
// your configuration
liveChange: function(){
if(this.getValue() === "")
this.setValueState(sap.ui.core.ValueState.Error);
else
this.setValueState(sap.ui.core.ValueState.Success);
}
});
(https://openui5.hana.ondemand.com/docs/api/symbols/sap.ui.core.ValueState.html)
【讨论】:
您可以在更改字段值本身时对其进行验证,如下所示
var oname = new sap.ui.commons.TextField({
id: 'input2',
change : function(){
if(this.getValue()=='')
alert("enter some value");
}
});
或者你可以编写一个函数来验证点击某个按钮。
【讨论】:
即使使用 required 属性也无济于事,因为 UI5 不会在表单标签中放置任何控件。 required 属性设置一个属性
aria-required=true
您可以使用 jQuery 选择所有需要 aria 的元素并在任何其他控件事件(例如按下按钮)上处理它们。
下面是相同的示例代码。
var oBtn = new sap.ui.commons.Button();
oBtn.attachPress(function(){
var error;
jQuery('input[aria-required=true]').each(function(){
var oInput = sap.ui.getCore().byId(this.id);
var val = oInput.getValue();
if(!val){
var sHtml = '<ul><li><strong> value is empty</li></ul>';
var sValueState = '<strong>Error!</strong>';
// Combine Input value, Error title and message into a Rich Tooltip
var oTooltip = new sap.ui.commons.RichTooltip({ text: sHtml, valueStateText: sValueState});
oInput.setTooltip(oTooltip);
oInput.setValueState(sap.ui.core.ValueState.Error);
error = false;
}else{
oInput.setValueState(sap.ui.core.ValueState.None);
oInput.setTooltip(' ');
}
});
if(error){
return error;
}
});
【讨论】: