2014-01-21 118 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); 
});