2011-02-25 79 views
0

Readonly vs disbled我的代碼有什麼問題?Readonly vs disbled從我的代碼中出現什麼問題?

<select id="A" onchange="change_val(A,B)"> 
    <option value="A">A</option> 
    <option value="B">B</option> 
    <option value="C">C</option> 
    <option value="D">D</option> 
    </select> 

<input type="text" id="B" value="Hello first time"/> 


function change_val(selectbox,input_filed) { 
    var sel = document.getElementById(selectbox), 
    lbl = document.getElementById(input_filed); 

    lbl.disabled = (sel.selectedIndex !== 0); 
    if(sel.selectedIndex === 0) { 
    lbl.value = 'Hello first time'; 
    } else { 
    lbl.value = sel.options[sel.selectedIndex].value; 
    } 
} 

當我們更改選擇框時,該腳本可以正常工作,並且「DISABLED」輸入屬性。 但是當我嘗試READONLY輸入屬性,因爲我需要提交的數據,但不允許改變 所以我改變了一下功能是這樣的:

function change_val(selectbox,input_filed) { 
    var sel = document.getElementById(selectbox), 
    lbl = document.getElementById(input_filed); 
if(sel.selectedIndex !== 0){var readonly='readonly';} 
    lbl.readonly = readonly; 
    if(sel.selectedIndex === 0) { 
    lbl.value = 'Hello first time'; 
    } else { 
    lbl.value = sel.options[sel.selectedIndex].value; 
    } 
} 

READONLY輸入字段不works.input場still editable

有人知道代碼有什麼問題嗎?對readonly屬性有什麼誤解?

+0

*只讀輸入字段不工作。 * 那是什麼意思?什麼*不起作用*? – 2011-02-25 10:05:22

+0

輸入欄仍然可編輯 – kn3l 2011-02-25 10:07:05

回答

1

的屬性稱爲readOnly(大寫的O):

lbl.readOnly = (sel.selectedIndex !== 0); 

你也應該字符串傳遞給函數:

<select id="A" onchange="change_val('A','B')"> 

DEMO

+0

對不起,我更新了代碼,我錯誤地複製了。 – kn3l 2011-02-25 10:11:41

+0

是的你說得對,謝謝,:) – kn3l 2011-02-25 10:16:55

1

你的封套是錯誤的,我相信它應該是一個布爾值。

lbl.readOnly = true; 

編輯:在審查了DOM,我不認爲實際上是有readOnly屬性<select>元素。難道你不能隱藏實際的選擇,只是顯示一個只讀文本框?

+0

你100%權限只讀屬性它的區別只讀。 – kn3l 2011-02-25 10:10:37