繁体   English   中英

如何将多个ID简化为多种功能?

[英]How to simplify multiple IDs to multiple function?

我有以下代码检查日期的输入。 我希望用户键入dd / MM / YYYY。 如果用户键入dd / MM / YY,我将提醒他们。 我正在为每个输入标签编写每个javascript函数。 如何简化javascript函数或我做不到?

<input id="dt_join" name="dt_join" value="<%=dt_join%>" type="text" class="form-control" date-picker onblur="checkdt_join();">

<input id="dt_confirm" name="dt_confirm" value="<%=dt_confirm%>" type="text" class="form-control" datewotoday onblur="checkdt_confirm();">

<input id="dt_resign" name="dt_resign" value="<%=dt_resign%>" type="text" class="form-control" datewotoday onblur="checkdt_resign();">

function checkdt_join(){
    var input = document.getElementById("dt_join").value;
    var pattern =/^([0-9]{1,2})\/([0-9]{1,2})\/([0-9]{4})$/;

    if (pattern.test(input)==false){
        alert("Date format is incorrect, please key in DD/MM/YYYY");
        }   
    }

function checkdt_confirm(){
    var input = document.getElementById("dt_confirm").value;
    var pattern =/^([0-9]{1,2})\/([0-9]{1,2})\/([0-9]{4})$/;

    if (pattern.test(input)==false){
        alert("Date format is incorrect, please key in DD/MM/YYYY");
        }   
    }
function checkdt_resign(){
    var input = document.getElementById("dt_resign").value;
    var pattern =/^([0-9]{1,2})\/([0-9]{1,2})\/([0-9]{4})$/;

    if (pattern.test(input)==false){
        alert("Date format is incorrect, please key in DD/MM/YYYY");
        }   
    }

简单又脏的一个:在onblur属性中this传递输入元素。 (删除了与问题无关的属性)

 function checkdt(el) { var input = el.value; var pattern = /^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/; if (pattern.test(input) == false) { alert("Date format is incorrect, please key in DD/MM/YYYY"); } } 
 <input value="01/01/2001" type="text" onblur="checkdt(this);" /> <input value="11/11/2011" type="text" onblur="checkdt(this);" /> <input value="12/12/2012" type="text" onblur="checkdt(this);" /> 

清晰明确:使用事件监听器

 $(function() { $(".date-checker").blur(function checkdt() { var input = this.value; var pattern = /^([0-9]{1,2})\\/([0-9]{1,2})\\/([0-9]{4})$/; if (pattern.test(input) == false) { alert("Date format is incorrect, please key in DD/MM/YYYY"); } }); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input value="01/01/2001" class="date-checker" type="text" /> <input value="11/11/2011" class="date-checker" type="text" /> <input value="12/12/2012" class="date-checker" type="text" /> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM