文本框填充逻辑

时间:2014-05-22 07:23:38

标签: jquery

我有两个字段(#PageHeadingTxt和#MetaTitleTxt)。最初两者都是空白的。每当用户在#PageHeadingTxt文本框中输入任何数据时,相同的数据也应该填充其他文本框。我没有遇到任何问题但是另外的要求是当用户手动更改#MetaTitleTxt输入时,#PageHeadingTxt中的内容不应再镜像到#MetaTitleTxt中。这是我的代码:

var metaTitleHasBeenEdited = 0;
$('#MetaTitleTxt').on('focus',function(){
$(this).on('keyup',function(){
    metaTitleHasBeenEdited ++;
    });
});
$('#PageHeadingTxt').on('focus',function(){
if (metaTitleHasBeenEdited <=0 ) {
    $('#PageHeadingTxt').on('input',function(){
        $('#MetaTitleTxt').val($('#PageHeadingTxt').val());
        });
    }
});

现在,无论如何,第一个文本框中的内容都会被镜像到第二个文本框中。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:0)

你在jquery中有错误:&#39;以下是单引号:

$('#MetaTitleTxt').val($('#MetaTitleTxt).val());
                                       ^

不知道为什么要选择 MetaTitleTxt 的文字并放在同一个文本框中

更新的代码

$(function(){
    var metaTitleHasBeenEdited = 0;
    $('#MetaTitleTxt').on('focus',function(){
        $(this).on('keyup',function(){
            metaTitleHasBeenEdited ++;
        });
    });
    $('#PageHeadingTxt').on('focus',function(){
        $('#PageHeadingTxt').on('keyup',function(){
                if (metaTitleHasBeenEdited <=0 ) {
                $('#MetaTitleTxt').val($('#PageHeadingTxt').val());
                }
            });

    });
});

Updated Demo

答案 1 :(得分:0)

我已经编辑了一下,让它按照您的意愿工作,如果错误,请纠正我:

metaTitleHasBeenEdited = 0;
$('#MetaTitleTxt').on('keyup', function () {
    //Use this if you want to reset the flag incase if the both text field is equal i n case of manual edit
    if ($('#MetaTitleTxt').val() == $("#PageHeadingTxt").val()) {
        metaTitleHasBeenEdited = 0;
        return true;
    }
    metaTitleHasBeenEdited++;
});

$('#PageHeadingTxt').on('keyup', function () {
    alert(metaTitleHasBeenEdited);
    if (metaTitleHasBeenEdited <= 0) {
        $('#MetaTitleTxt').val($("#PageHeadingTxt").val());
    }
});

这是Demo