2014-01-21 151 views
1
<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更新

我希望如果浏览器中的后退按钮被按下,将在窗体上查看该值,并根据选择框中的值显示文本框。

在Jquery中,我将如何检查页面加载和更改时的值,而不用两次编写代码?

感谢,

韦恩

更新 我如果选择了后退按钮已经检查窗体上的复选框的代码。我正在寻找类似的选择框。点击后退按钮后的下面的代码将检查复选框是否被选中,如果是,它将显示窗体中的两个隐藏文本框。

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

您必须将其存储在cookie中。 – BenM

+0

或更改网址散列以跟踪历史记录 –

+0

嗨,BenM,真的吗?除了将其存储在Cookie中之外,没有其他方法可以做到这一点吗?我知道我有一个检查复选框,我有相同的形式,但是这是$(功能(){如果($(“#prevcredit”)。是(':checked'))。是不是有什么办法在jquery中说嘿检查表单的值?这个数字已经存在了,我只需要添加基于已经在选择框中的值的文本框 – scrfix

回答

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); 
});