Onchange для JQuery Datetime - PullRequest
       2

Onchange для JQuery Datetime

1 голос
/ 07 ноября 2011

Борьба с onchange для плагина JQuery Datetime: http://plugins.jquery.com/project/datetime

Я использую следующий код.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="/charts/js/jquery-1.4.4.min.js"></script>
<script type="text/javascript" src='/charts/js/jquery-ui-1.8.6.custom.min.js'></script>
<script type="text/javascript" src="/charts/js/jquery.ui.datetime.min.js"></script> 
<link rel="Stylesheet" href="/charts/css/redmond/jquery-ui-1.8.6.custom.css" />
<link rel="Stylesheet" href="/charts/css/jquery.ui.datetime.css" type="text/css" />

<script type="text/javascript">
    $(function(){
        $('#endSelect').datetime({ value: '2011-01-01 13:00', minDate: '2011-01-01 01:00', maxDate: '2011-12-31 12:00'});
    });

    jQuery('#endSelect').change(function() {
        alert("hi");
    });

</script>

</head>
    <body>
        <input id="endSelect" class="grid-3" />
    </body>
</html>

Я настроил тестовый сайт на здесь , где вы можете самостоятельно протестировать код.

Ответы [ 3 ]

1 голос
/ 08 ноября 2011

я написал datetime. он использует фабрику виджетов. события там не запускаются как обычные события jquery. Посмотрите документы на http://wiki.jqueryui.com/w/page/12138135/Widget%20factory.. Есть два способа выполнить то, что вы пытаетесь сделать.

<script>
  $(function(){
    // you can put any triggerable event in as options on the init
    $('#datetime').datetime({ value: '+1month', change: function(){ 
        alert("hello small world") 
      } 
    });
    // or bind using the plugin name as a prefix on the event
    $('#datetime').datetime({ value: '+1month' }).bind("datetimechange", function(){         
        alert("hello small world") 
      });
    });
</script>
Date:&nbsp;<input id="datetime" />

надеюсь, это поможет. R

1 голос
/ 07 ноября 2011

Я проверил это, и, кажется, работает ..

jQuery('#endSelect').change(function() {
    alert('duh');
});
0 голосов
/ 07 ноября 2011

Ваша привязка события происходит до того, как элемент существует. Селектор не соответствует ни одному элементу и прикрепил ваше предупреждение к этим 0 элементам.

Вам нужно, чтобы подключение события происходило после того, как элемент находится в DOM, все, что вам нужно сделать, это переместить функцию оповещения в первый вызов jQuery, это означает, что код не запускается, пока не сработает onLoad:

<script type="text/javascript">
    $(function(){
        $('#endSelect').datetime({ value: '2011-01-01 13:00', minDate: '2011-01-01 01:00', maxDate: '2011-12-31 12:00'});
        jQuery('#endSelect').change(function() {
            alert("hi");
        });
    });
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...