单击按钮时不在输入上设置事件

时间:2013-12-25 08:26:44

标签: javascript jquery

我编写了函数,它控制输入文本。单击按钮时,在输入设定值中。在那个时候我需要函数'StartDate1.change'控制更改输入值。因此,如果这是值,则等于12/24/2013 - >清场。但这是功能不起作用。你能帮我解决一下吗?

<!DOCTYPE html>
<html>
    <head>
        <script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.js"></script>
    </head>
    <body>

        <form action="demo_form.asp">
            Date: <input type="text" name="Phone" title="title1" value="">
            <input id="target" class="ms-ButtonHeightWidth" type="button"  accesskey="O" 
                   value="Add date" >
        </form>

        <script type="text/javascript">
            $(document).ready(function(){
                $( "#target" ).click(function() {
                    var StartDate=$('[title="title1"]');              
                    StartDate.val('12/25/2013');
                });

                var StartDate1=$('[title="title1"]');
                StartDate1.change(function(event){//doesn't get here
                    window.setInterval(function(){
                        if($(event.target).val()==='12/24/2013')
                        {
                            //some code
                        }else
                        {
                            $(event.target).val('');
                        }
                    });
                });


            });

        </script>

    </body>
</html>

这是关于fidler的例子:

Fiddle

3 个答案:

答案 0 :(得分:1)

如果需要在输入字段中控制值,请使用keyup处理程序

http://jsfiddle.net/yPYDJ/5/

答案 1 :(得分:0)

onchange事件仅在值更改且输入失去焦点时触发。

您可以手动更改代码来触发它:

$( "#target" ).click(function() {
  var StartDate=$('[title="title1"]');              
  StartDate.val('12/25/2013');
  StartDate.change();
});

答案 2 :(得分:0)

重复调用传递给window.setInterval的函数。因此,按钮点击功能设置的值立即重置。

var timeFunction;                 
$( "#targetb" ).click(function() {
                    var StartDate=$('[title="title1"]'); 
                    StartDate.off('change');
                    StartDate.val('12/25/2013');
                    StartDate.on('change',function(event){
                    console.log("lol");
                    timeFunction=window.setInterval(clearInput,2000);
                });

                });

              function clearInput(){
                        var StartDate=$('[title="title1"]'); 
                        if(StartDate.val()==='12/24/2013')
                        {
                            //some code
                        }else
                        {
                            StartDate.val('');
                            window.clearInterval(timeFunction);
                        }

                    }

我创造了一个新的小提琴http://jsfiddle.net/yPYDJ/4/。如果这是你的预期,请检查并接受它。