后退按钮上的Jquery更新

时间:2014-01-21 12:35:39

标签: jquery select button drop-down-menu back

<div id="inputs" style="margin:0;"></div>

$('#addtpcs').change(function() {
  var selectedValue = $(this).val();

  var targetDiv = $("#inputs").html("");
  var a=1;
  for(var i = 0; i < selectedValue; i++) {
     targetDiv.append($("<dd><label for=\"addtpcs\" class=\"label\">Additional PC "+a+"</label><input id=\"addtpcs"+a+"\" type=\"text\"/></dd>"));
    a++;
  }
});

我有一个选择框(名为addtpcs),表格已经加载在页面中,表格中有数字(即1,2,3,4等)。上面的代码适用于动态添加的输入类型=文本框,基于在选择框中选择的数字。但是,在单击“提交”按钮然后使用后退按钮后,它无法正常工作。选择框显示数字,但文本输入无需加载,无需单击下拉选择菜单并选择不同的数字,然后再次单击它并选择之前的数字。

我希望如果推送浏览器中的后退按钮,将在表单上查看该值,并且文本框将根据选择框中的值显示。

在Jquery中,如何在不编写代码两次的情况下检查页面加载和更改时的值是什么?

谢谢,

韦恩

更新 如果选择了后退按钮,我的代码会检查表单上已有的复选框。我正在为选择框寻找类似的东西。按下后退按钮时下面的代码将检查是否选中了复选框,如果是,它将显示表单中的两个隐藏文本框。

$(function() {
if ($("#prevcredit").is(':checked')){
    $("#credit_amount").show();
    $("#credit_amount2").show();
}
else {
     $('#credit_amount2').val('0.00');
}
});

1 个答案:

答案 0 :(得分:1)

好的,我解决了这个问题。

第1步:代码的HTML部分:

<div id="inputs" style="margin:0;"></div>

第2步:Javascript函数

在javaScript中创建一个附加到targetDiv的函数。此函数将采用1个参数。这将是需要添加多少个框的值。

function displayTextBoxes(value)
{
a=1;
targetDiv = $("#inputs").html("");
for(var i = 0; i < value; i++) {
     targetDiv.append($("<dd><label for=\"addtpcs\" class=\"label\">Additional PC "+a+"</label><input id=\"addtpcs"+a+"\" type=\"text\"/></dd>"));
    a++;
  }
}

第3步:创建JQuery函数调用

第一个函数查看与id addtpcs关联的任何值。这将在用户按下浏览器中的后退按钮时查看值。 第二个是查看当您在表单上时值是否已更改。

$(function() {
var selectValue = $('#addtpcs').val();
displayTextBoxes(selectValue);
});

$('#addtpcs').change(function() {
  var selectedValue = $(this).val();
  displayTextBoxes(selectedValue);
});