淘汰验证不适用于每台计算机

时间:2016-03-18 09:29:21

标签: knockout.js knockout-validation

我正在开发一个我需要验证的项目,但它不能在每台计算机上工作,在IE和谷歌Chrome上的计算机上它运行良好,代码启用按钮但在其他具有当前版本的计算机上IE或Chrome它不启用按钮。

以下是我的Knockout验证设置:

$(document).ready(function () {
ko.validation.init({
    registerExtenders: true,
    messagesOnModified: false,
    insertMessages: true,
    parseInputAttributes: true
});
//ko.validation.registerExtenders();
ko.applyBindings();

这是我的验证方法:

var myNewBusiness = function (Country_ImportFrom, Country_ExportTo, State_ProducedIn, State_HandIn, State_SentTo, MainActivity, BusinessType, MainService, Currency,CountryId_ImportFrom, CountryId_ExportTo, StateId_ProducedIn, StateId_HandIn, StateId_SentTo,
FormName, Email, FirstName, LastName, PhoneNumber, Price, Address, MainActivityId, YearsOfActivity
, Website, Capacity ,Comments, Company, CurrencyId,BusinessTypeId, StatusTypeId, BusinessId, MainServiceId, PersonId, ProtNum, Tags, ImageData
  ) {
    var self = this;

    var
        _Currency = ko.observable(Currency),
        _ProtNum = ko.observable(ProtNum),
        _Country_ImportFrom = ko.observable(Country_ImportFrom),
        _Country_ExportTo = ko.observable(Country_ExportTo),
        _State_ProducedIn = ko.observable(State_ProducedIn),
        _State_HandIn = ko.observable(State_HandIn),
        _State_SentTo = ko.observable(State_SentTo),
        _MainActivity = ko.observable(MainActivity),
        _BusinessType = ko.observable(BusinessType),
        _MainService = ko.observable(MainService),
        _BusinessTypeId = ko.observable(BusinessTypeId).extend({ required: { params: true, message: "این فیلد الزامی است" } }),//, getBusinessTypeId: {params: true} 
        _CountryId_ImportFrom = ko.observable(CountryId_ImportFrom)
        .extend({
            required: {
                onlyIf: function () {
                    if (clientModel)
                        return clientModel.selectedProtNum() === 101;
                    else
                        return false;
                }, params:clientModel, message: "این فیلد الزامی است"
            }

        })
        ,
        _CountryId_ExportTo = ko.observable(CountryId_ExportTo)
        .extend({
            required: { onlyIf: function () {
                if (clientModel)
                    return clientModel.selectedProtNum() === 104;
                else
                    return false;
            }, params:clientModel,  message: "این فیلد الزامی است" }

        })
        ,
        _StateId_ProducedIn = ko.observable(StateId_ProducedIn)
        .extend({
            required: {
                onlyIf: function () {
                    if (clientModel)
                        return clientModel.selectedProtNum() === 103;
                    else
                        return false;
                }, params: clientModel, message: "این فیلد الزامی است"
            }

        })
        ,
        _StateId_HandIn = ko.observable(StateId_HandIn)
        .extend({
            required: {
                onlyIf: function () {
                    if (clientModel)
                        return clientModel.selectedProtNum() === 101;
                    else
                        return false;
                }, params: clientModel, message: "این فیلد الزامی است"
            }

        })
        ,
        _StateId_SentTo = ko.observable(StateId_SentTo)
        .extend({
            required: {
                onlyIf: function () {
                    if (clientModel)
                        return clientModel.selectedProtNum() === 104;
                    else
                        return false;
                }, params: clientModel, message: "این فیلد الزامی است"
            }

        })
        ,
         _Capacity = ko.observable(Capacity).extend({ number: true, min: 1 })

        ,  
        _FormName = ko.observable(FormName).extend({
            required: {message: "این فیلد الزامی است"}, params: true
        }),
        _Email = ko.observable(Email).extend({  pattern: { message: "قالب ایمیل را رعایت کنید", params: /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i } }),
        _FirstName = ko.observable(FirstName),
        _LastName = ko.observable(LastName),
        _PhoneNumber = ko.observable(PhoneNumber).extend({ pattern: { message: "قالب تلفن را رعایت کنید", params: /^\+?([0-9]{2})\)?[-. ]?([0-9]{4})[-. ]?([0-9]{6})$/ } }), 
        _Price = ko.observable(Price).extend({ number: true, min: 1 }),
        _Address = ko.observable(Address),
        _MainActivityId = ko.observable(MainActivityId).extend({
            required: {
                onlyIf: function () {
                    if (clientModel)
                        return clientModel.selectedProtNum() === 101 || clientModel.selectedProtNum() === 102 || clientModel.selectedProtNum() === 103 || clientModel.selectedProtNum() === 104 || clientModel.selectedProtNum() === 105;
                    else
                        return false;
                }, params: clientModel, message: "این فیلد الزامی است"
            }

        }),
        _YearsOfActivity = ko.observable(YearsOfActivity).extend({ number: true, min: 1 }),
        _Website = ko.observable(Website).extend({ pattern: { message: "قالب آدرس وب را رعایت کنید مثال: www.google.com", params: /^(www\.){0,1}[a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,5}[\.]{0,1}/ } }), 

        _Comments = ko.observable(Comments),
        _Company = ko.observable(Company),
        _CurrencyId = ko.observable(CurrencyId).extend({ required: { params: true, message: "این فیلد الزامی است" } }),
        _StatusTypeId = ko.observable(StatusTypeId),
        _BusinessId = ko.observable(BusinessId),
        _MainServiceId = ko.observable(MainServiceId).extend({
            required: {
                onlyIf: function () {
                    if (clientModel)
                        return clientModel.selectedProtNum() === 100;
                    else
                        return false;
                }, params: clientModel, message: "این فیلد الزامی است"
            }

        }),
        _PersonId = ko.observable(PersonId),
    _Tags = ko.observable(Tags),
    _ImageData = ko.observable(ImageData);
    var BusinessErrors = ko.validation.group([       
        _FormName
        , _Email
        , _PhoneNumber
        , _Price
        , _YearsOfActivity
        , _Website
        , _BusinessTypeId
      , _StateId_SentTo
      , _StateId_HandIn
      , _StateId_ProducedIn
      , _CountryId_ExportTo
      , _CountryId_ImportFrom
      , _MainActivityId
     , _MainServiceId
     , _Capacity
     , _CurrencyId
    ]);

    return {

        CountryId_ImportFrom: _CountryId_ImportFrom,
        CountryId_ExportTo: _CountryId_ExportTo,
        StateId_ProducedIn: _StateId_ProducedIn,
        StateId_HandIn: _StateId_HandIn,
        StateId_SentTo: _StateId_SentTo,
        FormName: _FormName,
        Email: _Email,
        FirstName: _FirstName,
        LastName: _LastName,
        PhoneNumber: _PhoneNumber,
        Price: _Price,
        Address: _Address,
        MainActivityId: _MainActivityId,
        YearsOfActivity: _YearsOfActivity,
        Website: _Website,
        Capacity: _Capacity,
        Comments: _Comments,
        Company: _Company,
        CurrencyId: _CurrencyId,
        BusinessTypeId: _BusinessTypeId,
        StatusTypeId: _StatusTypeId,
        BusinessId: _BusinessId,
        MainServiceId: _MainServiceId,
        PersonId: _PersonId,
        Country_ImportFrom:_Country_ImportFrom,
        Country_ExportTo : _Country_ExportTo,
        State_ProducedIn: _State_ProducedIn,
        State_HandIn : _State_HandIn,
        State_SentTo : _State_SentTo,
        MainActivity : _MainActivity,
        BusinessType :_BusinessType,
        MainService: _MainService,
        Currency: _Currency,
        ProtNum: _ProtNum,
        Tags: _Tags,
        ImageData : _ImageData,
        BusinessErrors: BusinessErrors,

    };


};

这是我的viewModel:

var clientModel = {
    newBusiness: myNewBusiness("", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "","","","","","","","","", ""),
}

以及检查错误的HTML代码:

<button class="btn btn-danger" data-bind=" enable:!clientModel.newBusiness.BusinessErrors().length">ایجاد</button>

这个

0 个答案:

没有答案