我有两个字段(#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());
});
}
});
现在,无论如何,第一个文本框中的内容都会被镜像到第二个文本框中。任何帮助表示赞赏。
答案 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());
}
});
});
});
答案 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