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