您如何以编程方式清除HTML5日期字段?

Roy*_*Roy 11 javascript jquery html5 date

我正在寻找一种用Javascript(特别是jQuery)以编程方式清除HTML5日期字段的方法.到目前为止,我已经尝试了两种我认为很明显的方法:

$('input[type=date]').val('');

$('input[type=date]').val('0000-00-00');
Run Code Online (Sandbox Code Playgroud)

但至少他们都没有使用最新版本的Chrome for PC,还没有尝试过其他浏览器或平台.是否有API调用或可以跨浏览器方式清除日期字段的东西?我已经寻找像解决这个需要用户清除日期字段,而我需要这种以编程方式完成.

Dom*_*ann 8

$("input[type=date]").val("")在chrome中为我工作.它将输入字段设置为dd/mm/yyyy.

也许它是特定于浏览器的.大多数浏览器仅对此输入提供部分支持或不支持:http://caniuse.com/input-datetime

  • 我正在使用 Chrome 版本 31.0.1650.63 m,这是根据更新程序的最新版本,对我不起作用。我的大问题是我也需要它至少在 iOS Safari 上工作,所以我不能发布只在 Chrome 中工作的东西。 (2认同)

Dav*_*ann 7

如果您无法清除日期字段,这也可能取决于浏览器错误。我花了一些时间才发现,如果日期控件被禁用,则无法在 Firefox 中重置日期。请参阅:https ://bugzilla.mozilla.org/show_bug.cgi?id=1465979

如果没有错误,我可以像这样清除日期:

document.getElementById("myDate").value = "";
Run Code Online (Sandbox Code Playgroud)


Saj*_*han 6

document.getElementById("datePicker").valueAsDate = null;
Run Code Online (Sandbox Code Playgroud)

这行代码适用于我的浏览器(chrome),未在其他浏览器中测试


小智 5

我最近需要做这件事,我做了这个小技巧......似乎可以完成这项工作。

它只是使用 JavaScript,但 jQuery 版本几乎相同......

function reset_date_native() {
  var date_input = document.getElementById('date-id');

  //erase the input value
  date_input.value = '';

  //prevent error on older browsers (aka IE8)
  if (date_input.type === 'date') {
    //update the input content (visually)
    date_input.type = 'text';
    date_input.type = 'date';
  }
}

function reset_date_jquery() {
  $('#date-id').val('')
    .attr('type', 'text')
    .attr('type', 'date');
}
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="date-id" type="date" />
<button onclick="reset_date_native()">Trigger the reset function (native)</button>
<button onclick="reset_date_jquery()">Trigger the reset function (jQuery)</button>
Run Code Online (Sandbox Code Playgroud)


Ale*_* K. 0

您可以恢复占位符;

$('input[type=date]')[0].valueAsDate = '';
Run Code Online (Sandbox Code Playgroud)