php 如何禁用input type=“date”中dd-mm-yyyy字段,以便只接受选定日期

2eafrhcq  于 2023-08-02  发布在  PHP
关注(0)|答案(4)|浏览(122)

我使用的是一个HTML输入元素,类型为date,

<input
    type="text" 
    placeholder="Date of Appointment" 
    id="appointment_date" 
    name="appointment_date" 
    class="input-sm form-full" 
    required value="<?php if(isSet($_POST["submit"])){echo $_POST['appointment_date'];}?>" 
    onfocusout="(this.type='text')" 
    onfocus="(this.type='date',this.step='0')"
>

字符串
当我使用上面的元素时,它创建了一个默认的日期格式,即 mm/dd/yyyy 输入元素中的文本。
如何删除此默认文本?
我想禁用 dd-mm-yyyy 步长值,这样只有选定的日期才能作为上述代码的输入。请提供一个JS解决方案。我尝试在我的页面上添加下面的样式,但它也隐藏了所选的日期值,

input[type=date]::-webkit-datetime-edit-text {
    -webkit-appearance: none;
    display: none;
}
input[type=date]::-webkit-datetime-edit-month-field{
    -webkit-appearance: none;
    display: none;
}
input[type=date]::-webkit-datetime-edit-day-field {
    -webkit-appearance: none;
    display: none;
}
input[type=date]::-webkit-datetime-edit-year-field {
    -webkit-appearance: none;
    display: none;
}

dtcbnfnu

dtcbnfnu1#

你可以试试这个,希望对你的问题有帮助。但这并不是解决这类问题的好办法。

$("#appointment_date").on('focus', function(){
	this.type='date';
});

$("#appointment_date").on('input', function(){
	this.type='text';
});
input[type=date]::-webkit-datetime-edit-text {
    -webkit-appearance: none;
    display: none;
}
input[type=date]::-webkit-datetime-edit-month-field{
    -webkit-appearance: none;
    display: none;
}
input[type=date]::-webkit-datetime-edit-day-field {
    -webkit-appearance: none;
    display: none;
}
input[type=date]::-webkit-datetime-edit-year-field {
    -webkit-appearance: none;
    display: none;
}
<input type="text" 
       placeholder="Date of Appointment" 
       id="appointment_date" 
       name="appointment_date" 
       class="input-sm form-full" >

https://jsfiddle.net/4xua73vo/12/

nwlqm0z1

nwlqm0z12#

从输入字段,我修改成一个日期字段。
您可以直接使用此插件https://code.jquery.com/jquery-1.12.4.js

<script src="http://code.jquery.com/ui/1.12.0-rc.1/jquery-ui.js"></script>

字符串
或下载并保存为

<script src="jquery-1.12.4.js"></script> // downloaded


然后使用输入字段ID调用此函数

function fncDate(vID){
    $("#"+vID).datepicker({
        dateFormat : 'mm/dd/yy',
        changeMonth : true,
        changeYear : true,
        yearRange: '-100y:c+nn',
        maxDate: '-1d',
        constrainInput: true
    });
 }


举例来说:

fncDate("inpDate");// inpDate is the ID of the text field


您还可以使用此函数修改日期格式。
希望这能帮上忙。

rkttyhzu

rkttyhzu3#

最近我自己也遇到了这个问题。我相信OP已经找到了答案,但对于那些谷歌搜索,onchange事件是在人们点击[x]并将日期设置为“dd/mm/yyyy”时触发的。
这意味着我们可以做到这一点。

<input type="date" id="myDate" value="2020-01-01" data-default="2019-12-31"/>

字符串
还有这个

document.getElementById("myDate").addEventListener("change",(ev)=>{
                if (ev&&ev.target)
                    if (ev.target.value=="")
                        ev.target.value = ev.target.dataset.default;
            });

6l7fqoea

6l7fqoea4#

如果您需要隐藏'dd/mm/yyyy'文本(仅预览)
你可以运行这个代码:

var DA = document.querySelectorAll('input[type=date]');
for (let d of DA)
    d.type='';

字符串
如果没有值==>空字段


==>

如果值存在==>值仍然存在,但格式不同


==>

相关问题