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());
});