这个If / Else代码有什么问题?

时间:2011-08-06 18:48:18

标签: javascript jquery

我有一个“更改”按钮,可以在单击时激活或锁定表单。虽然按钮仅在我单击“更改”时起作用,然后不起作用:/

<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);

    }

})

谢谢:)

**纠正缩进

谢谢大家!你们都回应得那么快,我感谢大家的时间:)

6 个答案:

答案 0 :(得分:5)

您在<{1}} 设置 readonlytrue,而不是 。您需要使用.attr(attributeName)来获取值。

if

答案 1 :(得分:5)

需要检查这样的真实情况:

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

你也可以只拥有readonly属性

<input readonly>

在这种情况下,请使用:

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

将两者合并为单一陈述:

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

答案 2 :(得分: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);

}

})

答案 3 :(得分: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);

}

})

答案 4 :(得分:2)

$('#one').attr('readonly', true)readonly属性设置为true。您需要阅读它并将其与true

进行比较
if ($('#one').attr('readonly') == true) // ...

答案 5 :(得分: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);

}

})

代替