2014-09-26 51 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

相关问题