我有一个HTML表单,当用户填充输入字段时,我将从一系列输入字段复制值到某些跨度/标题。我能够使用以下代码实现此功能:
$('#source').keyup(function(){
if($("#source").val().length == 0){
$("#destinationTitle").text('Sample Title');
}else{
$("#destinationTitle").text($("#source").val());
}
});
在上面的场景中,html类似于:
样本标题
基本上,当用户填写源框时,文本将更改为源输入的值。如果没有输入任何内容,或者用户删除了在框中键入的值,则会在其中放置一些默认文本。非常直截了当。但是,由于我需要为许多不同的领域开展这项工作,因此将其转换为通用函数然后将该函数绑定到每个onkeyup()事件是有意义的。但是我遇到了一些麻烦。我的实施:
function doStuff(source,target,defaultValue) {
if($(source).val().length == 0){
$(target).text(defaultValue);
}else{
$(target).text($(source).val());
}
}
的调用如下:
$('#source').keyup(function() {
doStuff(this, '"#destinationTitle"', 'SampleTitle');
});
我无法弄清楚的是如何将第二个参数,即目标html元素的名称传递给函数。我通过“this”传递我绑定的元素没有问题,但是无法弄清楚目标元素的语法。
任何帮助都将不胜感激 - 非常感谢!
答案 0 :(得分:5)
这样称呼:
$('#source').keyup(function() {
doStuff(this, '#destinationTitle', 'SampleTitle');
});
这只是一个字符串:)
如果该元素与另一个元素相关,则可以使其成为通用元素,例如,如果#destinationTitle
始终位于下一个div,下一个表格单元格等中...始终位于相同的相对位置,你可以为所有键绑定使这个更清洁,如果你发布一些示例标记,我会告诉你如何。
答案 1 :(得分:1)
摆脱双引号。