2011-08-06 13 views
1

私はフォームをアクティブにしたり、クリックしたときにロックされる「変更」ボタンを持っています。ボタンは、私は "変更" をクリックしたときに動作し、次にませんが:/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); 

    } 

}) 

THANKS :)

**修正インデント

すべてに感謝!あなたのすべてはすぐにそう答えたと、私はあなたがあなたiftruereadonlyを設定している、というよりもそれを取得して自分の時間:)

答えて

5

のためのみんなに感謝します。値を取得するには.attr(attributeName)を使用する必要があります。

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

これ($( '#one')。attr(readonly)= true){? – pufAmuf

+0

これは、正しい_readonly_属性がマークアップ内で 'readonly =" readonly "'として設定されるべきであるため、肯定的なテストは 'attr( 'readonly')== 'readonly''です。しかし、@Mrchiefが指摘しているように、スタンドアロンの属性(有効なXHTMLではない)が存在する可能性があります。 readonly属性を正しく設定することができれば、上記の比較はうまくいくでしょう。 – andyb

5

次のように真をチェックする必要があります。

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

あなたもこれだけ使い、それ自体で、その場合には

<input readonly> 

を読み取り専用属性を持つことができます。

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

2つを組み合わせて1つのstateme 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

truereadonly属性を設定$('#one').attr('readonly', true)この1

<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

を試してみてください。

$( '入力#1 changeone')でなければなりませんあなたはそれを読み、true

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

とそれを比較する必要があります。($( '#の1')場合は(関数(){ をクリックします。ATTRだからは、Liを見なければならない)){

$("#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); 

} 

を}( '読み取り専用')代わり

関連する問題