4

Firefox v57.0.1 は、html 入力タグの属性「date」をサポートします。ユーザーが次のような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
   }
}); 

私はテストしました:

  • val("")
  • val(ヌル)
  • val("0000-00-00")
  • val( 新しい日付() )

成功せずに...誰かが解決策を知っていますか?

4

4 に答える 4

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 に答える