Javascript 读取字段值,记住它,更改字段,然后返回到以前的状态

Javascript 读取字段值,记住它,更改字段,然后返回到以前的状态,javascript,jquery,Javascript,Jquery,我在一个电子商务网站上设置了一些基于大量因素的数字字段。我想要一个选项,将清除这些数字,如果一个单选选项被点击,但然后返回到他们以前的数字,如果一个不同的单选选项被点击。我有下面的代码将值设置为0,但我不知道如何继续将它们设置回原来的值。我的值是在几个不同的地方定义的,所以我不能轻松地引用它们,但是有没有办法在字段设置为0之前读取它们,然后将它们设置回以前的状态 $('input[type="radio"]').click(function() { if($(this).attr('id')

我在一个电子商务网站上设置了一些基于大量因素的数字字段。我想要一个选项,将清除这些数字,如果一个单选选项被点击,但然后返回到他们以前的数字,如果一个不同的单选选项被点击。我有下面的代码将值设置为0,但我不知道如何继续将它们设置回原来的值。我的值是在几个不同的地方定义的,所以我不能轻松地引用它们,但是有没有办法在字段设置为0之前读取它们,然后将它们设置回以前的状态

$('input[type="radio"]').click(function() {
  if($(this).attr('id') == 'yes-option') { 
  $('#option1').val('0');
  $('#option2').val('0');
  $('#option3').val('0');
  $('#option4').val('0');
}
else if($(this).attr('id') == 'no-option') {
???
}
您可以使用存储以前输入/选择的值:

$('input[type="radio"]').click(function() {
    var $optionOne = $('#option1');
    var $optionTwo = $('#option2');
    var $optionThree = $('#option3');
    var $optionFour = $('#option4');

    if($(this).attr('id') == 'yes-option') { 
      $optionOne.data('previous-value', $optionOne.val());
      $optionOne.val('0');

      $optionTwo.data('previous-value', $optionTwo.val());
      $optionTwo.val('0');

      $optionThree.data('previous-value', $optionThree.val());
      $optionThree.val('0');

      $optionFour.data('previous-value', $optionFour.val());
      $optionFour.val('0');
    } else if($(this).attr('id') == 'no-option') {
      $optionOne.val($optionOne.data('previous-value'));
      $optionTwo.val($optionTwo.data('previous-value'));
      $optionThree.val($optionThree.data('previous-value'));
      $optionFour.val($optionFour.data('previous-value'));
    }
});
您可以使用存储以前输入/选择的值:

$('input[type="radio"]').click(function() {
    var $optionOne = $('#option1');
    var $optionTwo = $('#option2');
    var $optionThree = $('#option3');
    var $optionFour = $('#option4');

    if($(this).attr('id') == 'yes-option') { 
      $optionOne.data('previous-value', $optionOne.val());
      $optionOne.val('0');

      $optionTwo.data('previous-value', $optionTwo.val());
      $optionTwo.val('0');

      $optionThree.data('previous-value', $optionThree.val());
      $optionThree.val('0');

      $optionFour.data('previous-value', $optionFour.val());
      $optionFour.val('0');
    } else if($(this).attr('id') == 'no-option') {
      $optionOne.val($optionOne.data('previous-value'));
      $optionTwo.val($optionTwo.data('previous-value'));
      $optionThree.val($optionThree.data('previous-value'));
      $optionFour.val($optionFour.data('previous-value'));
    }
});

一种可能的方法是在数组中始终保持选项的先前状态

var-previousStates=[];
$('input[type=“radio”]”)。单击(函数(){
如果($(this.attr('id')=='yes option'){
$.saveState();//在更改值之前保存当前状态
$(“选项”)。每个(功能(索引){
$(this.val('0');
});
}
else if($(this).attr('id')=='no option'){
$.restoreState();
}
});
$.saveState=函数(){
PreviousState=[];//清空数组
$(“选项”)。每个(功能(索引){
PreviousState[index]=$(this.val();
});
}
$.restoreState=函数(){
$(“选项”)。每个(功能(索引){
$(this.val)(以前的状态[索引]);
});
}

注意:由于此方法使用索引来标识选项,如果需要动态添加或删除选项,请务必小心

一种可能的方法是始终将选项的先前状态保留在数组中

var-previousStates=[];
$('input[type=“radio”]”)。单击(函数(){
如果($(this.attr('id')=='yes option'){
$.saveState();//在更改值之前保存当前状态
$(“选项”)。每个(功能(索引){
$(this.val('0');
});
}
else if($(this).attr('id')=='no option'){
$.restoreState();
}
});
$.saveState=函数(){
PreviousState=[];//清空数组
$(“选项”)。每个(功能(索引){
PreviousState[index]=$(this.val();
});
}
$.restoreState=函数(){
$(“选项”)。每个(功能(索引){
$(this.val)(以前的状态[索引]);
});
}

注意:由于此方法使用索引来标识选项,如果需要动态添加或删除选项,请务必小心

使用数据属性存储旧值,以便以后可以读取它们

最好使用循环遍历每个元素,这样就不需要每次添加新的输入字段时都对其进行修改。 您还可以将选择器更改为
$('input')
或任何适合您需要的选项

$('input[type=“radio”])。单击(函数(){
如果($(this.attr('id')=='yes option'){
$('[id^=“option”]')。每个(函数(){
$(this.data('oldval',$(this.val());
$(此).val(0);
});
}
else if($(this).attr('id')=='no option'){
$('[id^=“option”]')。每个(函数(){
$(this.val($(this.data('oldval'));
});
}
});

对
不

使用数据属性存储旧值,以便以后读取

最好使用循环遍历每个元素,这样就不需要每次添加新的输入字段时都对其进行修改。 您还可以将选择器更改为
$('input')
或任何适合您需要的选项

$('input[type=“radio”])。单击(函数(){
如果($(this.attr('id')=='yes option'){
$('[id^=“option”]')。每个(函数(){
$(this.data('oldval',$(this.val());
$(此).val(0);
});
}
else if($(this).attr('id')=='no option'){
$('[id^=“option”]')。每个(函数(){
$(this.val($(this.data('oldval'));
});
}
});

对
不

在清除这些值之前,您需要存储这些值(简单的存储方式是在变量中)。但是,您的代码意味着您正在使用单选按钮,在这种情况下,用户从不为它们提供值,而是将其烘焙。请展开您的问题以显示相关的HTML。在清除这些值之前,您需要存储这些值(简单存储将在变量中)。但是,您的代码意味着您正在使用单选按钮,在这种情况下,用户从不为它们提供值,而是将其烘焙。请展开您的问题以显示相关的HTML。