【问题标题】:I'm trying to use checkbox as condition我正在尝试使用复选框作为条件
【发布时间】:2020-02-21 07:07:38
【问题描述】:

所以我想要做的是: 用户基本上选择输入 type='date' 的日期,但如果用户单击它旁边的复选框,输入 type='date' 将被当前日期和时间替换。这是我写的代码:

        function myFunction() {
            if($("#checkbox").checked == true) {
                $("#input_date").hide();
                var now = new Date();
                $("#current_datetime").text(now).show();
            } else if($("#checkbox").checked == false) {
                $("#current_datetime").hide();
                $("#input_date").show();  
            }
        }

在 html 代码中的 #checkbox 中,我有 onClick="myFunction"

同样,#current_datetime 是 span 标签中的简单文本,#input_date 位于页面上完全相同的位置。

但该功能不起作用。无论我点击多少次复选框,都没有任何变化。

非常感谢您提前提供的帮助。

【问题讨论】:

  • 分享完整代码,包括HTML
  • 我不认为你需要另一个文本框来显示当前日期
  • 分享 HTML 代码,以便我们知道您在那里做了什么,可能是您的 HTML 有问题

标签: javascript jquery html checkbox


【解决方案1】:

您可以根据下面的格式设置您的日期,然后您可以在 input type='date' 中使用它

$(document).ready(function(){
$("#currentDate").on('change',function(){
   var checked=$(this)[0].checked;
   console.log(checked)
   if(checked){
     var today = new Date();
    var dd = today.getDate();
    var mm = today.getMonth()+1;
    var yyyy = today.getFullYear();
    if(dd<10){
        dd='0'+dd;
    } 
    if(mm<10){
        mm='0'+mm;
    } 
     today = yyyy+'-'+mm+'-'+dd; 
     $("#Date").val((today))
   }
   else{
   $("#Date").val('')
   }
})
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type='date' id='Date'/><input type='checkbox' id='currentDate'/>

【讨论】:

  • 哦,其实我还有一个问题。我试图添加时间 (HH:MM),因此添加了 var hhmm = today.getTime(); 并将此变量 hhmm 添加到下面的变量 today 中。但是它不起作用。你能帮我解决这个问题吗?
【解决方案2】:

希望对你有帮助

<input type="date" id="input_date">
<input type="checkbox" id="checkbox" >
<p id="current_datetime"></p>
<script src="https://code.jquery.com/jquery-1.9.1.min.js"></script>


<script>
$(document).ready(function(){
    $('#checkbox').click(function(){
        if($(this).prop("checked") == true){
            $("#input_date").hide();
            var now = new Date();
            $("#current_datetime").text(now).show();
        }
        else if($(this).prop("checked") == false){
            $("#current_datetime").hide();
            $("#input_date").show(); 
        }
    });
});
</script>

【讨论】:

    【解决方案3】:

    Checked 是一个属性,您可以使用 .prop() 读取该值。此外,要更改输入值,您需要使用 .val()。

        <script type="text/javascript">
         function myFunction() {
            if($("#checkbox").prop('checked') == true) {
                $("#input_date").hide();
                var now = new Date();
                $("#current_datetime").val(now).show();
            } else if($("#checkbox").prop('checked') == false) {
                $("#current_datetime").hide();
                $("#input_date").show();  
            }
        }
    </script>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-13
      • 1970-01-01
      • 2023-03-18
      • 2017-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-17
      相关资源
      最近更新 更多