jquery事件的问题

时间:2010-06-08 09:45:51

标签: javascript-events jquery

我必须使用复选框通过jquery将文本从一个文本框复制到另一个文本框我已经在我的代码中应用了jquery事件,它的工作部分正确..代码如下:

<html>
<head>
    <script src="js/jquery.js" ></script>
</head>
<body>
    <form>
        <input type="text" name="startdate" id="startdate" value=""/>
        <input type="text" name="enddate" id="enddate" value=""/>
        <input type="checkbox" name="checker" id="checker" />
    </form>
    <script>
    $(document).ready(function(){
            $("#startdate").change(function(o){
        if($("#checker").is(":checked")){
            $("#enddate").val($("#startdate").val());
        }

});
});
    </script>
</body>
</html>

此代码的工作原理如下, 我总是默认选中复选框,因此每当我插入开始日期然后选项卡时,开始日期都会被复制到enddate。

  

我的问题

但是现在如果取消选中复选框并更改开始日期然后重新检查复选框,则不会复制开始日期,现在应该在这种情况下做什么..请帮助我....

3 个答案:

答案 0 :(得分:2)

这样的事情:

$(document).ready(function(){
    $("#startdate").change(function(o){
        if($("#checker").is(":checked")){
            $("#enddate").val($("#startdate").val());
        }
    });

    $("#checker").change(function() {
        if($(this).is(":checked")) {
            $("#enddate").val($("#startdate").val());
        }
    });
});

答案 1 :(得分:1)

同时为checkbox添加活动:

$('#checker').bind('click', function () {
    if ($(this).attr('checked')) { 
       $("#enddate").val($("#startdate").val());
    };
});

如果enddate没有值,则

$('#checker').bind('change', function () {
    var endDate = $('#enddate');

    if ($(this).attr('checked') && jQuery.trim(endDate.val()) === "") { 
       endDate.val($("#startdate").val());
    };
});

答案 2 :(得分:1)

您只需.bind()点击一下您的复选框即可。

$('#checker').click(function(){
   if($(this).is(':checked')){
      $("#enddate").val($("#startdate").val());
   }
});