Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kendo ui kendoUI网格弹出式编辑模板验证未拾取模型验证规则_Kendo Ui - Fatal编程技术网

Kendo ui kendoUI网格弹出式编辑模板验证未拾取模型验证规则

Kendo ui kendoUI网格弹出式编辑模板验证未拾取模型验证规则,kendo-ui,Kendo Ui,在不使用模板的网格中单击“编辑”时,将正确应用为schema.Model定义的验证规则。但是,如果使用自定义模板,则不会应用schema.Model验证规则 我怀疑答案是,因为我使用的是自定义弹出式编辑模板,所以我可以有一个下拉列表,所以我必须手动指定每个html输入字段的规则,如必需的。因此,我希望这不是真的,对于schema.Model定义的相同规则也适用于编辑器模板 如果你知道答案,请发帖,谢谢! 丹 @丹尼尔 下面是我获取模型中定义的验证属性并将它们添加到DOM的代码 /** * Se

在不使用模板的网格中单击“编辑”时,将正确应用为schema.Model定义的验证规则。但是,如果使用自定义模板,则不会应用schema.Model验证规则

我怀疑答案是,因为我使用的是自定义弹出式编辑模板,所以我可以有一个下拉列表,所以我必须手动指定每个html输入字段的规则,如必需的。因此,我希望这不是真的,对于schema.Model定义的相同规则也适用于编辑器模板

如果你知道答案,请发帖,谢谢! 丹

@丹尼尔 下面是我获取模型中定义的验证属性并将它们添加到DOM的代码

/**
 * Sets label,input html5 attributes and css based on the validation attributes of the
 * model for the given dataSource
 * @param {Object} myDs    dataSource that contains the Model Schema used for validation.
 */
function addValidationAttributes(myDs) {

    var myFields
    //Pass in DS or pass in model from grid
    if (myDs.options) {
        myFields = myDS.options.schema.model.fields
    } else//model
    {
        myFields = myDs.fields
    }

    $.each(myFields, function(fieldName) {
        //Add validation attributes
        if (this.validation) {
            $('#' + fieldName).attr(this.validation);
            //Set label to required if field is required
            if (this.validation.required) {
                $('label[for=' + fieldName + ']').addClass('required');
                $('#' + fieldName).attr('title', "required");
                //Check if KendoUI widget because it creates an extra span
                if ($('#' + fieldName).is('[data-role]')) {
                    $('.k-widget').after('<span class="k-invalid-msg" data-for="' + fieldName + '"></span>');
                } else {
                    $('#' + fieldName).after('<span class="k-invalid-msg" data-for="' + fieldName + '"></span>');
                }
            }
        } else//optional
        {
            //Non requried fields set to optional exclude KEY ID STAMP
            if (fieldName !== '__KEY' && fieldName !== '__STAMP' && fieldName !== 'ID') {
                //Check if KendoUI widget because it creates an extra span
                if ($('#' + fieldName).is('[data-role]')) {
                    $('.k-widget').after('<span class="optional" data-for="' + fieldName + '"></span>');
                } else {
                    $('#' + fieldName).after('<span class="optional" data-for="' + fieldName + '"></span>');
                }
            }
        }

    });
}

在输入元素中使用
required

<input type="text" class="k-input k-textbox" name="Name" data-bind="value:Name" required>


你的模板是什么样的?不要完全同意否决票。所以再次投票。我也遇到了同样的问题。谢谢Daniel,这是一个解决方案,但我试图避免在我的模式中已经定义了验证时,必须向html中添加验证属性(如required),这只是多余的。例如,在网格中,您不必手动添加验证属性,它们是从模式中提取的。无论如何,我只是做了一个小函数,读取每个字段的当前模式验证规则,并用适当的属性更新Dom。这是一个很好的替代方案,您可以共享吗?想知道我是否更喜欢这样(当然是修改文本并在我的解决方案中丢失普通文本字段验证中的唯一数字),这里是我用来从model.Schema获取验证属性并将它们添加到DOM的代码
<input type="text" class="k-input k-textbox" name="Name" data-bind="value:Name" required>