Javascript 使用Jquery将多个.change函数合并为一个

Javascript 使用Jquery将多个.change函数合并为一个,javascript,jquery,Javascript,Jquery,我有几个文本输入字段,可以更新一些隐藏字段 我有几个.change函数,可以监视可见输入字段的更改 这是我的JSFIDLE- 滑动分页 HTML 发布到数据库的隐藏字段 我的主要问题是如何将这些函数组合成一个函数?可能吗?相关元素都是#manualFullAddress的子元素。因此,我们可以将.change()事件处理程序添加到此父元素(“事件委派”,但每个元素也可以使用一个事件处理程序) 我们可以使用this来获取元素的id。使用.replace(“手动”和“”)我们可以获得相应元素

我有几个文本输入字段,可以更新一些隐藏字段

我有几个
.change
函数,可以监视可见输入字段的更改

这是我的JSFIDLE-

滑动分页 HTML

发布到数据库的隐藏字段


我的主要问题是如何将这些函数组合成一个函数?可能吗?

相关元素都是
#manualFullAddress
的子元素。因此,我们可以将
.change()
事件处理程序添加到此父元素(“事件委派”,但每个
元素也可以使用一个事件处理程序)

我们可以使用
this
来获取
元素的id。使用
.replace(“手动”和“”)
我们可以获得相应
元素的id

$(“#manualFullAddress”)。在(“更改”、“输入”函数()上{
常量输入=$(此);
$(“#”+this.id.replace(“手动”和“)).val(input.val());
});
$(“#manualFullAddress”)。在(“更改”、“输入”函数()上{
常量输入=$(此);
$(“#”+this.id.replace(“手动”和“)).val(input.val());
});

“隐藏”元素


相关元素都是
#manualFullAddress
的子元素。因此,我们可以将
.change()
事件处理程序添加到此父元素(“事件委派”,但每个
元素也可以使用一个事件处理程序)

我们可以使用
this
来获取
元素的id。使用
.replace(“手动”和“”)
我们可以获得相应
元素的id

$(“#manualFullAddress”)。在(“更改”、“输入”函数()上{
常量输入=$(此);
$(“#”+this.id.replace(“手动”和“)).val(input.val());
});
$(“#manualFullAddress”)。在(“更改”、“输入”函数()上{
常量输入=$(此);
$(“#”+this.id.replace(“手动”和“)).val(input.val());
});

“隐藏”元素


在您的情况下,您可以使用
.manualAddressEntry js
绑定更改事件,并动态获取id,如下所示

$('.manualAddressEntry-js').change( function() {
  var id = $(this).attr('id').replace("Manual", "");
  $(`input[id=${id}]`).val($(`input[id=${id}]`).val());
});

但我建议将id更改为
数据-
,如果您没有在其他任何地方使用它,则使用该id代替id。

在您的情况下,您可以使用
.manualAddressEntry js
绑定更改事件,并动态获取id,如下所示

$('.manualAddressEntry-js').change( function() {
  var id = $(this).attr('id').replace("Manual", "");
  $(`input[id=${id}]`).val($(`input[id=${id}]`).val());
});

我建议将ID更改为<代码>数据->代码>,如果不是在其他地方使用,则使用.<代码>使用<<代码> ID为“/Cord>>选择器,添加<代码> < <代码> >代码>字符串.原型.替换()/<代码> .您几乎完成了.请考虑更改您的HTML,例如对于手动字段,您可以使用
,而JS要简单得多,从
$('[data target]')开始。在('change',函数{var thisInput=$(this);var thisTarget=$(thisInput.data('target'));thisTarget.val(thisInput.val());})让你的生活更轻松。。。欢迎使用<代码>以ID为/代码>选择器,添加<代码>此<代码> >代码>字符串。原型。替换()/>代码。请考虑更改HTML。例如,对于您的手动字段,可以使用<代码> <代码>,比您的JS要容易得多,从<代码> $('[数据目标] ]开始。{var thisInput=$(this);var thisTarget=$(thisInput.data('target');thisTarget.val(thisInput.val());})
只是让你的生活更轻松…干杯great help@Andreas不知道你可以在父分区上使用
.change
功能。replace是一个很好的主意。great help@Andreas不知道你可以在父分区上使用
.change
功能。replace是一个很好的主意。你也需要进行replace。你需要重新执行行政长官也有。
<input class="HideValFromSet" id="TravellerContact_Address1" name="TravellerContact.Address1" type="hidden" value="">

<input class="HideValFromSet" id="TravellerContact_Address2" name="TravellerContact.Address2" type="hidden" value="">

<input class="HideValFromSet" id="TravellerContact_Address3" name="TravellerContact.Address3" type="hidden" value="">

<input class="HideValFromSet" id="TravellerContact_Address4" name="TravellerContact.Address4" type="hidden" value="">

<input class="HideValFromSet" id="TravellerContact_Address5" name="TravellerContact.Address5" type="hidden" value="">

<input class="HideValFromSet" id="TravellerContact_PostCode" name="TravellerContact.PostCode" type="hidden" value="">
$('.manualAddressEntry-js').change( function() {
  var id = $(this).attr('id').replace("Manual", "");
  $(`input[id=${id}]`).val($(`input[id=${id}]`).val());
});