javascript - Jquery 时间选择器更改事件的问题

标签 javascript jquery html

我在触发 jquery timepicker 更改事件时遇到问题。我需要在选择时间后立即更新字段。这是到目前为止的代码

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Deploment Management</title>

        <link rel="stylesheet" type="text/css" href="style/tabs.css">
        <link rel="stylesheet" type="text/css" href="style/style.css">
        <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/timepicker/1.3.4/jquery.timepicker.min.css">
        <link href="http://code.jquery.com/ui/1.10.4/themes/vader/jquery-ui.css" rel="stylesheet">

        <script type="text/javascript" src="js/jquery-1.6.1.min.js"></script>
        <script type="text/javascript" src="js/jquery.easyui.min.js"></script>
        <script src="http://code.jquery.com/jquery-1.10.2.js"></script>
        <script src="http://code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
        <script src="//cdnjs.cloudflare.com/ajax/libs/timepicker/1.3.4/jquery.timepicker.min.js"></script>

        <script>
            $(function(){
                $('#time').timepicker({
                    timeFormat: 'h:mm p',
                    interval: 15,
                    dynamic: true,
                    dropdown: true,
                    scrollbar: true
                });

                $('#time').on('change', function() {
                    var x = document.getElementByName("time").value;
                    document.getElementById('d_time').value = "Maintenance Tonight - " +x;
                });
            });
        </script>
    </head>
    <body>
        <table>
            <tr>
                <td class="right">Scheduled Time:</td>
                <td>
                    <input type="text" name="time" class="full" id="time" />
                </td>
            </tr>
            <tr>
                <td class="right">Email Subject:</td>
                <script>
                    function subject() {
                        if (document.getElementById('default').checked) {
                            document.getElementById('default_subject').style.display = 'block';
                            document.getElementById('custom_subject').style.display = 'none';
                        }
                        else if (document.getElementById('custom').checked) {
                            document.getElementById('custom_subject').style.display = 'block';
                            document.getElementById('default_subject').style.display = 'none';
                        }
                    }
                </script>
                <td>
                    <input type="radio" onclick="javascript:subject();" id="default" name="radio" checked value="default">Default Subject
                    <input type="radio" onclick="javascript:subject();" id="custom" name="radio" value="custom">Custom Subject
                </td>
            </tr>
            <tr>
            <td/>
            <td>
                <div id="subject_field">
                    <div id="default_subject" style="display:block" name="default">
                        <input name="default" id="d_time" value="" readonly="readonly"/>
                    </div>
                    <div id="custom_subject" style="display:none" name="custom">
                        <input name="custom" />
                    </div>
                </div>
            </td>
            </tr>
        </table>
    </body>
</html>

这是缩写代码,但它仍然应该做我想做的事情。我需要它做的是在时间上选择 ID 为 d_time 的输入应该更新默认值,如上述函数中所述,但由于某种原因我无法触发它。在我使用选择选项之前,它工作得很好,这个方法我一无所知。

我不经常使用 javascript 或 jquery,如果能提供一些帮助,我将不胜感激。我阅读了有关更改事件的文档,但它并没有真正帮助。

提前致谢。

最佳答案

借助 timepicker.js ( doc ) 的“changeTime”事件,您可以触发操作。顺便说一句,您的 timepicker.js 版本很旧。 所以你可以试试这个:

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Deploment Management</title>
        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-timepicker/1.8.6/jquery.timepicker.css">
        <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-timepicker/1.8.6/jquery.timepicker.js"></script>
        <script>
            $('document').ready(function(){
                $('#time').timepicker();
                $('#time').on('changeTime', function() {
                    var x = $("#time").val();
                    $('#d_time').val("Maintenance Tonight - " +x);
                });
            });
        </script>
    </head>
    <body>
        <table>
            <tr>
                <td class="right">Scheduled Time:</td>
                <td>
                    <input type="text" name="time" class="full" id="time" />
                </td>
            </tr>
            <tr>
                <td class="right">Email Subject:</td>
                <script>
                    function subject() {
                        if ($('#default').is(':checked')) {
                            $('#default_subject').css('display','block');
                            $('#custom_subject').css('display','none');
                        }
                        else if ($('#custom').is(':checked')) {
                            $('#custom_subject').css('display','block');
                            $('#default_subject').css('display','none');
                        }
                    }
                </script>
                <td>
                    <input type="radio" onclick="subject();" id="default" name="radio" checked value="default">Default Subject
                    <input type="radio" onclick="subject();" id="custom" name="radio" value="custom">Custom Subject
                </td>
            </tr>
            <tr>
            <td/>
            <td>
                <div id="subject_field">
                    <div id="default_subject" style="display:block" name="default">
                        <input name="default" id="d_time" value="default" readonly="readonly"/>
                    </div>
                    <div id="custom_subject" style="display:none" name="custom">
                        <input name="custom" type="text" value="custom"/>
                    </div>
                </div>
            </td>
            </tr>
        </table>
    </body>
</html>

关于javascript - Jquery 时间选择器更改事件的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38233114/

相关文章:

php - 根据不同按钮提交动态获取数据

php - 基于 PHP 和 jQuery 构建的倒数计时器?

javascript - typeahead.js 远程发送后数据问题

CSS:Divs 不左右对齐

javascript - Highcharts:隐藏和显示图例

javascript - 检查元素的特殊值

java - 如何使用XSL动态设置属性值

javascript - 如何在 React 组件中将焦点设置在一个输入而不是所有输入上?

javascript - 表单字段显示

javascript - this.someFunction.bind(this) 是多余的吗?