2011-08-06 32 views
1

我有一個「更改」按鈕,使單擊時表單處於活動狀態或鎖定狀態。雖然按鈕只有當我點擊 「更改」,然後Works不:/這個If/Else代碼有什麼問題?

<div class="holder"> 
    <div class="question active">Q1<input id="one" type="text"> 
<div class="button passive"><input type="button" value="Change" id="changeone"></div></div></div> 

$('input#changeone').click(function() { 
    if($('#one').attr('readonly', true)) { 

     $("#changeone").attr('value', 'Save'); 
     $('div.button').parent().css('background-color', 'red'); 
     $('#one').attr('readonly', false); 

    } else { 

     $("#changeone").attr('value', 'Change'); 
     $('div.button').parent().css('background-color', 'green'); 
     $('#one').attr('readonly', true); 

    } 

}) 

謝謝:)

**修正的壓痕

謝謝大家!你所有的反應如此之快,我感謝大家的時間:)

回答

5

設置readonlytrueif,而不是越來越它。您需要使用.attr(attributeName)才能獲得該值。

$('input#changeone').click(function() { 
    if($('#one').attr('readonly') == 'readonly') { 
     ... 
    } else { 
     ... 
    } 
}); 
+0

所以應該看起來李ke(this($('#one')。attr(readonly)= true){? – pufAmuf

+0

這取決於,正確的_readonly_屬性應該在標記中設置爲'readonly ='只讀'',所以正確的測試是'aton('readonly')=='readonly''。但是@Mrchief指出可能有一個獨立的屬性(不是有效的XHTML)。如果你正在控制正確設置readonly屬性,那麼上面的比較就可以。 – andyb

5

需要檢查真正是這樣的:

if($('#one').attr('readonly') == true)) 

用戶也可以直接通過本身

<input readonly> 

在這種情況下,具有隻讀屬性,使用:

$('#one').is('[readonly="readonly"]') || $('#one').is('[readonly="true"]') 

將兩者合併爲單個狀態NT:

var isReadonly = $('#one').attr("readonly"); 
if(isReadonly && isReadonly.toLowerCase()!=='false') { 
    // this is readonly 
} 
2

試試這個

$('input#changeone').click(function() { 
    if($('#one').attr('readonly')) { 

    $("#changeone").attr('value', 'Save'); 
    $('div.button').parent().css('background-color', 'red'); 
    $('#one').attr('readonly', false); 

} else { 

    $("#changeone").attr('value', 'Change'); 
    $('div.button').parent().css('background-color', 'green'); 
    $('#one').attr('readonly', true); 

} 

}) 
2

試試這個

<div class="holder"> 
    <div class="question active">Q1<input id="one" type="text"> 
<div class="button passive"><input type="button" value="Change" id="changeone"></div></div></div> 

$('input#changeone').click(function() { 
    if($('#one').attr('readonly') == true) { 

    $("#changeone").attr('value', 'Save'); 
    $('div.button').parent().css('background-color', 'red'); 
    $('#one').attr('readonly', false); 

} else { 

    $("#changeone").attr('value', 'Change'); 
    $('div.button').parent().css('background-color', 'green'); 
    $('#one').attr('readonly', true); 

} 

}) 
2

$('#one').attr('readonly', true)readonly屬性設置爲true。你需要讀它,並將它與true

if ($('#one').attr('readonly') == true) // ... 
2

比較應該是

$( '輸入#changeone')。點擊(函數(){ 如果($( '#一個')。ATTR ( '只讀')){

$("#changeone").attr('value', 'Save'); 
    $('div.button').parent().css('background-color', 'red'); 
    $('#one').attr('readonly', false); 

} else { 

    $("#changeone").attr('value', 'Change'); 
    $('div.button').parent().css('background-color', 'green'); 
    $('#one').attr('readonly', true); 

} 

})

代替