我正在开发一个我需要验证的项目,但它不能在每台计算机上工作,在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>
这个