sapui5中必填字段验证器

时间:2014-07-17 04:03:35

标签: javascript jquery sapui5

我有四个带有标签名称,年龄,城市和电话号码的文本字段。如果它留空,我必须验证它。它应该提醒我填写。如何在sapui5中使用必填字段验证器验证文本字段?

3 个答案:

答案 0 :(得分:8)

您可以简单地编写一个获取文本字段并检查其值的函数 这看起来像这样:

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

答案 1 :(得分:0)

您可以根据字段值本身的更改对其进行验证,如下所示

var oname = new sap.ui.commons.TextField({
id: 'input2',
change : function(){
       if(this.getValue()=='')
         alert("enter some value");
  }
});

或者你可以点击某个按钮编写一个验证功能。

答案 2 :(得分:0)

即使使用必需的属性也无济于事,因为UI5不会在表单标记中放置任何控件。 required属性设置属性

  

咏叹调-需要=真

您可以使用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;
        }
    });