<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');
}
});
答案 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);
});