2016-01-20 151 views
0

我有一個表格,根據已提供的兩個日期自動計算div「TotalDayOutofOffice」。問題是,這個字段的驗證不允許添加小數,所以如果有人想要半天的假期,他們無法提交請求(無論是輸入爲「0.5天」還是「1/2日」。刪除輸入字段的驗證

我添加下面我想這包括驗證要求的代碼。

我的代碼的知識不是特別大,所以任何幫助任何人都可以在這裏提供的是極大的讚賞。

// Numeric Validation 
     var totalDays = $(".divTotalDayOutofOffice input[type=text]").val(); 
     if (totalDays != ''){ 
     if (/^[0-9]{1,3}$/.test(totalDays)){ 

     } 
     else { 
     ttext = "\<a href='javascript:void(0);' onclick='SetTotalFocus();'\>\<b\> " + mandatoryfieldsdesc[1]+"\</a\> \<br\>"; 
     $(".divTotalDayOutofOffice .rn_TextInput>div>label").addClass("rn_ErrorLabel"); 
     $(".divTotalDayOutofOffice .rn_TextInput>input").addClass("rn_ErrorField"); 
     this._errorMessageDiv.append(ttext); 
     errorFlag = true; 
     } 
     } 


     if (errorFlag){ 
      return false; 
     } 
     else { 
      return true; 
     } 



    /** 
    * Overridable methods from FormSubmit: 
    * 
    * Call `this.parent()` inside of function bodies 
    * (with expected parameters) to call the parent 
    * method being overridden. 
    */ 
    // _onButtonClick: function(evt) 
    // _fireSubmitRequest: function() 
    // _onFormValidated: function() 
    // _onFormValidationFail: function() 
    // _formSubmitResponse: function(type, args) 
    // _onFormUpdated: function() 
    // _onErrorResponse: function() 
    // _displayErrorDialog: function(message) 
    // _onFormTokenUpdate: function(type, args) 
    // _enableFormExpirationWatch: function() 
    // _toggleLoadingIndicators: function(turnOn) 
    // _toggleClickListener: function(enable) 
    }, 

    _formatDate : function (date) { 
     var d = new Date(date), 
     month = '' + (d.getMonth() + 1), 
     day = '' + d.getDate(), 
     year = d.getFullYear(); 

     if (month.length < 2) month = '0' + month; 
     if (day.length < 2) day = '0' + day; 

     return [year, month, day].join('/'); 
     } 
    } 
}); 

回答

0

您可以替換此正則表達式測試:

if (/^[0-9]{1,3}$/.test(totalDays)){ 

有:

if (/^[0-9]{1,3}\.?[0-9]{1,2}?$/.test(totalDays)){ 

這將允許您驗證浮點值也有一點後最多號的限制。

+0

嗨, 感謝您的幫助 - 我設法刪除整個驗證本身的工作。 –