javascript - 使用日期选择器时如何在输入字段日期中,当按按键上的逗号替换为点时

标签 javascript php jquery datepicker

我使用日期选择器和输入表单来输入日期。有时需要,因为速度更快,只从键盘输入数字而不使用数据选择器。我如何允许格式输入字段日期 (type=text),按逗号并同时在输入字段中显示点(用点替换逗号)。这是因为键盘数字键盘只有逗号而不是点。现在我不能加逗号。现在只允许点。

脚本

<script>
$(function() {
$( "#dokumentdatum" ).datepicker( { changeMonth: true , changeYear:   
true, yearRange:"-100:+100", dateFormat: "dd.mm.yy",
dayNamesMin: ["Su", "Ne", "Po", "Ut", "Sr", "Če", "Pe"],
monthNamesShort: [ "Sij", "Vel", "Ožu", "Tra", "Svi", "Lip", "Srp", "Kol", "Ruj", "Lis", "Stu", "Pro" ],
firstDay: 2, showOn: "button",  buttonText: 'Odaberi datum', buttonImageOnly: true, buttonImage: 'http://jqueryui.com/resources/demos/datepicker/images/calendar.gif' , 
onClose: function()
   { this.focus(); }                       
 } );

 $(".ui-datepicker-trigger").mouseover(function() {
    $(this).css('cursor', 'pointer');       
   });                           
 });  
</script>

php

<p><label class="field4" for "Dokumentdatum">Datum dokumenta : </label> <input type="text" id="dokumentdatum" onblur="prepisidatumdvo(this)"  name="dokumentdatum" value="'.$dokumentdatum.'" placeholder="dd.mm.yyyy" size="10" class="textbox-xx" ></p>

最佳答案

maxlength 中的属性不是 size,因此请在输入字段中设置 maxlength=10。我想您还需要使用日期格式验证输入字符串。你可以试试这个:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
	var lastValue=""
	$(function(){
	    $('#dokumentdatum').on('input', function(e){
	    	        var data;
			data=$('#dokumentdatum').val();
			var count= data.length, ml= 10,remaining= ml - count;
		        if(remaining <= 0){
			    return;
		        }
		       var str=data.replace(/\,/g,".");
	    	$('#dokumentdatum').val(str.replace(/\.\.+/g, '.'));
	    }); 
	});
});

 function checkFormat() {
     var reg = /^(?:(?:31(\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\.)(?:0?[1,3-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\.)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$/g;
     var txt = $('#dokumentdatum').val();
     if (reg.test(txt)) {
         document.getElementById("mainDiv").innerHTML = "<h1 style='color:green'>Correct</h1>";
     } else {
         document.getElementById("mainDiv").innerHTML = "<h1 style='color:red'>Wrong</h1>";
     }
 }
</script>
<p><label class="field4" for "Dokumentdatum">Datum dokumenta : </label> <input type="text" id="dokumentdatum" onblur="checkFormat()"  name="dokumentdatum" value="" placeholder="dd.mm.yyyy"  class="textbox-xx" maxlength="10"></p>

<div id="mainDiv"></div>
请参阅此处的格式:Regex to validate date format dd/mm/yyyy

关于javascript - 使用日期选择器时如何在输入字段日期中,当按按键上的逗号替换为点时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33690768/

相关文章:

javascript - 预计项目文件

javascript - 如何使用两个按钮的 onClick() 事件在 JavaScript 中更改两种不同的背景颜色

PHP:仅显示每个单词的第一个字母 + 包括标点符号

javascript - PHP:发布有关提交表单的推文

jquery - 如何使用 jquery 循环 iframe?

javascript - 如何在 TinyMCE 中覆盖语言标签

javascript - Vuetify - 在开关内显示文本

php - 如何通过选择下拉属性过滤 magento 集合?

javascript - 使用 Javascript 在 Ajax 响应中查找元素

javascript - 如何从父元素触发href点击事件