我是Jquery的新手,我想更简短地更改此代码 effetive。
这是我在下面的代码,此代码选中复选框并更改 值。无论如何有人知道这个jquery,请帮助我。
function fn_checkboxChange(){
$("#redng_author_y").change(function(){
if($(this).is(":checked")){
$("#redng_author").val($(this).val());
}
})
$("#redng_author_n").change(function(){
if($(this).is(":checked")){
$("#redng_author").val($(this).val());
}
})
$("#redng_author_y").change(function(){
if($(this).is(":checked")){
$("#regist_author").val($(this).val());
}
})
$("#updt_author_y").change(function(){
if($(this).is(":checked")){
$("#updt_author").val($(this).val());
}
})
$("#updt_author_n").change(function(){
if($(this).is(":checked")){
$("#updt_author").val($(this).val());
}
})
$("#delete_author_y").change(function(){
if($(this).is(":checked")){
$("#delete_author").val($(this).val());
}
})
$("#delete_author_n").change(function(){
if($(this).is(":checked")){
$("#delete_author").val($(this).val());
}
})
}
答案 0 :(得分:2)
function setChangeListener(elem, targetElem){
$(elem).change(function(){
if($(this).is(":checked")){
$(targetElem)).val($(this).val());
}
});
}
}
然后为所有这样的集合调用该函数:
function fn_checkboxChange(){
setChangeListener( "#redng_author_y", "#redng_author");
setChangeListener( "#redng_author_n", "#redng_author");
setChangeListener( "#updt_author_y", "#updt_author");
setChangeListener( "#updt_author_n", "#updt_author");
setChangeListener( "#delete_author_y", "#delete_author");
setChangeListener( "#delete_author_n", "#delete_author");
}
或者,如果经常有多个复选框映射到同一输入,您可以:
function setChangeListener( targetElem, ...elems){
elems.forEach(function(elem){
$(elem).change(function(){
if($(this).is(":checked")){
$(targetElem)).val($(this).val());
}
});
});
}
和
function fn_checkboxChange(){
setChangeListener( "#redng_author", "#redng_author_y", "#redng_author_n");
setChangeListener( "#updt_author", "#updt_author_y","#updt_author_n");
setChangeListener( "#delete_author","#delete_author_y","#delete_author_n");
}
答案 1 :(得分:1)
在您的复选框中添加一个类和一个属性
<input type="checkbox" class="mycheckbox" data-target="someinput1" />
<input type="checkbox" class="mycheckbox" data-target="someinput2" />
<input type="checkbox" class="mycheckbox" data-target="someinput3" />
<input id="someinput1" ... />
<input id="someinput2" ... />
<input id="someinput3" ... />
$(".mycheckbox").change(function(){
if($(this).is(":checked")){
$("#" + $(this).data("target")).val($(this).val());
}
});