4

Firefox v57.0.1 支持 html 输入标签的属性“日期”。当用户单击这样的 rado 按钮时,我希望在 jquery 中重置日期值: 在此处输入图像描述

为了得到这个结果:

在此处输入图像描述

我的js代码

$("input[name=f_foo_duration]").click(function() {

   if ($("#f_foo_duration_until").is(':checked')) {
       $("#f_foo_duration_date").attr("readonly", false);
   }else{
      $("#f_foo_duration_date").attr("readonly", true);
      $("#f_foo_duration_date").attr( "value", new Date() ); <-- here
   }
}); 

我测试过:

  • 值(“”)
  • 值(空)
  • 值(“0000-00-00”)
  • 值(新日期())

没有任何成功......有人知道解决方案吗?

4

4 回答 4

2

如果您准备好使用 JQuery 清除或重置,请尝试以下代码

$("input[type=date]").val("");
于 2020-05-13T16:27:36.867 回答
1

要设置输入元素的值,请使用 jQuery 函数 elem.val("...")

$(function() {
  $('[name="contact"]:radio').on("change", function() {
    if ($("#f_foo_duration_until").is(":checked")) {
      let now = new Date().toISOString().slice(0,10);
      $("#f_foo_duration_date").val(now);      
      $("#f_foo_duration_date").attr("readonly", false);
    } else {
      $("#f_foo_duration_date").val("YYYY-MM-DD");
      $("#f_foo_duration_date").attr("readonly", true);
    }
  });
});
#my-form > * {
  vertical-align: middle;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="my-form">

  <input type="radio" id="f_foo_duration_until" name="contact" value="email">
  <label for="f_foo_duration_until">Valid until</label>

  <input id="f_foo_duration_date" name="f_foo_duration" type="date" value="2017-06-01">
  </input>

  <input type="radio" id="f_foo_duration_unlimited" name="contact" value="unlimited">
  <label for="f_foo_duration_unlimited">Unlimited</label>

</form>

于 2017-12-05T19:03:36.643 回答
1

对于因稍有不同的问题而到达此帖子的任何人:

对于 chrome,它可以正常工作val("")

不适用于 Firefox,因为该readonly属性(为什么?)

如果您删除“只读”,val("")并且变体在 Firefox 上运行良好。

于 2019-08-21T15:02:49.473 回答
0

我们需要将其转换为 YYYY-MM-DD 格式。

  $("#f_foo_duration_date").val(new Date().toISOString().slice(0,10));

有关切换格式的更多信息,请参阅此问题:Format JavaScript Date to yyyy-mm-dd

于 2017-12-05T19:14:06.327 回答