Html Jquery-选中复选框时获取文本框的上一个值

Html Jquery-选中复选框时获取文本框的上一个值,html,jquery,Html,Jquery,当我取消选中复选框时,关联的文本框值应为空。当我再次检查时,需要显示上一个值。正在寻找一个通用修复程序,以保存文本框的以前值,因为复选框计数将在将来增加 例如:当我选中第一个复选框时,关联的文本框的值为1。当我取消选中相同的复选框时,文本框的值应该变为空。当我再次检查时,旧的1值应该显示出来。任何帮助都将不胜感激 jQuery: $(".drilling_specify").click(function () { if ($(this).is(":checked")) {

当我取消选中复选框时,关联的文本框值应为空。当我再次检查时,需要显示上一个值。正在寻找一个通用修复程序,以保存文本框的以前值,因为复选框计数将在将来增加

例如:当我选中第一个复选框时,关联的文本框的值为1。当我取消选中相同的复选框时,文本框的值应该变为空。当我再次检查时,旧的1值应该显示出来。任何帮助都将不胜感激

jQuery:

$(".drilling_specify").click(function () {
    if ($(this).is(":checked")) {
        $(this).nextAll('input').first().removeClass('hide');
    } else {
        $(this).nextAll('input').first().addClass('hide').val('');
    }
});
HTML:


您可以将previos值存储在数据属性中,并在再次选中复选框时将输入值设置为该数据属性的值

$(“.drilling\u specify”)。单击(函数(){
var测试=$(“.drilling_specify”).val();
var input=$(this.nextAll('input').first();
如果($(this).is(“:checked”)){
input.removeClass('hide');
if(input.attr(“数据先前”)){
val(input.attr(“数据先前”));
}
}否则{
input.attr(“前面的数据”,input.val());
input.addClass('hide').val('');
}
});
.hide{
显示:无;
}

认可的
拒绝
持有

您可以将previos值存储在数据属性中,并在再次选中复选框时将输入值设置为该数据属性的值

$(“.drilling\u specify”)。单击(函数(){
var测试=$(“.drilling_specify”).val();
var input=$(this.nextAll('input').first();
如果($(this).is(“:checked”)){
input.removeClass('hide');
if(input.attr(“数据先前”)){
val(input.attr(“数据先前”));
}
}否则{
input.attr(“前面的数据”,input.val());
input.addClass('hide').val('');
}
});
.hide{
显示:无;
}

认可的
拒绝
持有

您需要在隐藏/清除字段值之前保存字段值,然后在再次显示时从保存的变量中设置其值

var savedValues=[];
$(“输入[type='checkbox']”)。更改(函数(){
let checked=$(this).is(“:checked”);
设textVal=$(this.nexist('label').next().val();
设id=$(this.attr('id');
如果(选中){
//显示它并设置值
让tempVal='';
if(保存值的类型[id]!=“未定义”){
tempVal=savedValues[id];
}
$(this).closest('label').next('input[type=“text”]).removeClass('hide').val(tempVal);
}否则{
//隐藏它并清除值
savedValues[id]=textVal;
$(this).closest('label').next('input[type=“text”]”).addClass('hide').val(“”);
}
});
.hide{
显示:无;
}

认可的
拒绝
持有

您需要在隐藏/清除字段值之前保存字段值,然后在再次显示时从保存的变量中设置其值

var savedValues=[];
$(“输入[type='checkbox']”)。更改(函数(){
let checked=$(this).is(“:checked”);
设textVal=$(this.nexist('label').next().val();
设id=$(this.attr('id');
如果(选中){
//显示它并设置值
让tempVal='';
if(保存值的类型[id]!=“未定义”){
tempVal=savedValues[id];
}
$(this).closest('label').next('input[type=“text”]).removeClass('hide').val(tempVal);
}否则{
//隐藏它并清除值
savedValues[id]=textVal;
$(this).closest('label').next('input[type=“text”]”).addClass('hide').val(“”);
}
});
.hide{
显示:无;
}

认可的
拒绝
持有

即使文本输入被隐藏,其值也不会随表单一起提交,您是否也这样做?我建议改为切换
disabled
属性()。您是否建议在else条件中添加disabled属性。使用disabled属性时的问题是没有更新db值。我想在复选框值未选中时将db列更新为空。即使文本输入被隐藏,其值也不会随表单一起提交,您是否也要这样做?我建议改为切换
disabled
属性()。您是否建议在else条件中添加disabled属性。使用disabled属性时的问题是没有更新db值。我想在复选框值未选中时将db列更新为空。
<input type="checkbox" class="drilling_specify" name="drilling_status[]" value="Accepted">&nbsp; 
<span>Accepted</span>
<input type="text" class="hide" name="drilling_accpt_specify" value="1" />

<input type="checkbox" class="drilling_specify" name="drilling_status[]" value="Rejected">&nbsp; 
<span>Rejected</span>
<input type="text" class="hide" name="drilling_accpt_specify" value="2" />

<input type="checkbox" class="drilling_specify" name="drilling_status[]" value="Hold">&nbsp; 
<span>Hold</span>
<input type="text" class="hide" name="drilling_accpt_specify" value="3" />
.hide{
  display:none;
}