2014-09-26 71 views
0

我有一個表格,允許用戶選擇工資頻率(例如每小時)並顯示年度化因子(每小時2080)。我的代碼允許用戶修改年度化因素,但我希望它只顯示,不可編輯。有人可以幫忙嗎?如何使結果單元格只讀?

代碼:

function register() { 
    document.all.NewFrequency.onchange = OnChange; 
} 

function Init() { 
    var selectionValue = document.all.AnnualizingFactor; 
    register(); 
    if (selectionValue.value == "") { 
     OnChange(); 
    } 
} 

function OnChange() { 
    var selectValue = document.all.NewFrequency; 
    var selectionValue = document.all.AnnualizingFactor; 
    if (selectValue.options[selectValue.selectedIndex].value == "Yearly") { 
     selectionValue.value = "1"; 
    } 
    if (selectValue.options[selectValue.selectedIndex].value == "Weekly") { 
     selectionValue.value = "52"; 
    } 
    if (selectValue.options[selectValue.selectedIndex].value == "Unit") { 
     selectionValue.value = "2080"; 
    } 
    if (selectValue.options[selectValue.selectedIndex].value == "SemiWeekly") { 
     selectionValue.value = "104"; 
    } 
    if (selectValue.options[selectValue.selectedIndex].value == "Semimonthly") { 
     selectionValue.value = "24"; 
    } 
    if (selectValue.options[selectValue.selectedIndex].value == "Quarterly") { 
     selectionValue.value = "4"; 
    } 
    if (selectValue.options[selectValue.selectedIndex].value == "Monthly") { 
     selectionValue.value = "12"; 
    } 
    if (selectValue.options[selectValue.selectedIndex].value == "Hourly") { 
     selectionValue.value = "2080"; 
    } 
    if (selectValue.options[selectValue.selectedIndex].value == "Daily") { 
     selectionValue.value = "365"; 
    } 
    if (selectValue.options[selectValue.selectedIndex].value == "Biweekly") { 
     selectionValue.value = "26"; 
    } 
    if (selectValue.options[selectValue.selectedIndex].value == "None") { 
     selectionValue.value = "0"; 
    } 
} 
+0

套裝readonly屬性爲true。 – j08691 2014-09-26 21:09:21

回答

0

正如@ j08691說,你必須標記只讀領域:

<input type="text" readonly name="AnnualizingFactor" /> 

或者通過編程設置輸入的只讀屬性:

function Init() { 
    var selectionValue = document.all.AnnualizingFactor; 
    selectionValue.readonly = true; 
    register(); 
    if (selectionValue.value == "") { 
     OnChange(); 
    } 
} 
+0

感謝您的迴應Rob。 這與我所嘗試的類似。這樣做的問題是它似乎只能在寫入表單之前纔讀取該字段,因此不會顯示。我需要將過程顯示在for上,但不能像現在這樣顯示在可編輯框中。 不知道這是否可能。我試過的每件事似乎都是爲了防止annualizingFactor根本不顯示。 再次,任何幫助,非常感謝。 – 2014-09-29 15:21:57

+0

我不確定字段爲什麼不顯示,只讀應該使字段不可編輯。也許我對你的用例感到困惑,這個小提琴有幫助嗎? http://jsfiddle.net/ubpmfj2k/ – 2014-09-29 18:50:43

相關問題