国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

js中自定義react數據驗證組件實例詳解

2024-05-06 15:28:38
字體:
來源:轉載
供稿:網友

我們在做前端表單提交時,經常會遇到要對表單中的數據進行校驗的問題。如果用戶提交的數據不合法,例如格式不正確、非數字類型、超過最大長度、是否必填項、最大值和最小值等等,我們需要在相應的地方給出提示信息。如果用戶修正了數據,我們還要將提示信息隱藏起來。

  有一些現成的插件可以讓你非常方便地實現這一功能,如果你使用的是knockout框架,那么你可以借助于Knockout-Validation這一插件。使用起來很簡單,例如我下面的這一段代碼:

ko.validation.locale('zh-CN');ko.validation.rules['money'] = {  validator: function (val) {    if (val === '') return true;    return /^/d+(/./d{1,2})?$/.test(val);  },  message: '輸入的金額不正確'};ko.validation.rules['moneyNoZero'] = {  validator: function (val) {    if (val === '') return true;    return isNaN(val) || val != 0;  },  message: '輸入的金額不能為0'};ko.validation.registerExtenders();var model = {  MSRP: ko.observable(0),  price: ko.observable().extend({ required: true, number: true, min: 10000, money: true, moneyNoZero: true }),  licence_service_fee: ko.observable().extend({ required: true, money: true }),  purchase_tax: ko.observable().extend({ required: true, money: true }),  vehicle_tax: ko.observable().extend({ required: true, money: true }),  insurance: ko.observable().extend({ required: true, money: true }),  commercial_insurance: ko.observable().extend({ required: true, money: true }),  mortgage: ko.observable(''),  interest_discount: ko.observable(''),  allowance: ko.observable().extend({ money: true }),  special_spec_fee_explain: ko.observable(''),  has_extra_fee: ko.observable(false),  is_new_energy: ko.observable(false)};model.extra_fee_explain = ko.observable().extend({  required: {    onlyIf: function () {      return model.has_extra_fee() === true;    }  }});model.extra_fee = ko.observable().extend({  required: {    onlyIf: function () {      return model.has_extra_fee() === true;    }  },  money: {    onlyIf: function () {      return model.has_extra_fee() === true;    }  }});model.new_energy_allowance_explain = ko.observable().extend({  required: {    onlyIf: function () {      return model.is_new_energy() === true;    }  }});model.total_price = ko.computed(function () {  var _total = Number(model.price()) + Number(model.licence_service_fee()) +    Number(model.purchase_tax()) + Number(model.vehicle_tax()) +    Number(model.insurance()) + Number(model.commercial_insurance());  if (model.has_extra_fee()) {    _total += Number(model.extra_fee());  }  if (model.is_new_energy()) {    _total -= Number(model.new_energy_allowance());  }  return isNaN(_total) ? '0' : _total.toFixed(2).replace(/(/.0*$)|(0*$)/, '');});model.errors = ko.validation.group(model);ko.applyBindings(model);

  更多使用方法可以查看github上的說明文檔和示例。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 屯昌县| 彰化市| 军事| 石家庄市| 宿州市| 永川市| 霍山县| 湘阴县| 特克斯县| 读书| 和龙市| 太白县| 泰州市| 岱山县| 萍乡市| 新安县| 明水县| 永和县| 乌鲁木齐县| 石景山区| 新乐市| 平南县| 繁昌县| 合川市| 南投县| 磐石市| 永宁县| 乌拉特后旗| 临漳县| 巴林左旗| 增城市| 皋兰县| 墨竹工卡县| 岫岩| 灌阳县| 瓮安县| 怀仁县| 玉门市| 巴彦淖尔市| 禹州市| 新平|