2016-01-20 156 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

嗨, 感谢您的帮助 - 我设法删除整个验证本身的工作。 –