2014-10-20 2 views
0

Мне нужен человек, который может помочь мне решить эту проблему. Код ниже хорошо работает с сообщением и кодом php.Отключить кнопку, основанную на id щелкнули

//Getting the id of a buyer and loop through 
    //sending a request to the seller 
    $(document).ready(function(){ 

    $('.buyerRequest').click(function(){ 


    var id=$(this).attr('id').replace('id_',''); 

    $.post('SendingOffer.php',{id:id},function(data){ 
     if(data=="true"){ 
      $(this).html('<b>Offer Send</b>').css('background','#dce6f1'); 
      $(this).attr("disabled","disabled"); 

     }else if(data=="false"){ 
      alert('You have reached the maximum number you can send todays'); 
      } 
     }); 

    }); 
    }); 

Я проверил код PHP, то есть, если возвращаемые данные верно окно вывода предупреждения и working.For экземпляру

if(data=="true"){ 
     alert(id); 

} 

Однако, в том числе и этот код

if(data=="true"){ 
     $(this).html('<b>Offer Send</b>').css('background','#dce6f1'); 
     $(this).attr("disabled","disabled"); 

} 

и нажав на текущий идентификатор, я не могу отключить его и изменить его атрибуты, чтобы предлагать отправить.

Как я могу справиться с этой проблемой

Это мой ДИВ код

echo"<li id='td_request'><a id='id_".$fetch_num['order_id']."' class='buyerRequest' href='#".$fetch_num['order_id']."'>Send Offer</a></li>"; 
+0

на отключение ... http://stackoverflow.com/a/1414366/623952 –

ответ

0

$ (это) не может быть очень хорошей идеей использовать внутри $ .post. Вам лучше использовать ссылку на объект html.

, например $ ("# mydiv") HTML ('Послать ') .css (' фон', '# dce6f1').

$ (this) обычно ссылается на текущий объект в контексте, в данном случае на запрос ajax, если я не ошибаюсь. Например ...

$(".mydiv").each(function(){ 
//using $(this) here refers to the current instance of .mydiv; not the DOM or the body 
}); 

Итак, попробуйте этот

$(document).ready(function(){ 

$('.buyerRequest').click(function(){ 


var id=$(this).attr('id').replace('id_',''); 

$.post('SendingOffer.php',{id:id},function(data){ 
    if(data=="true"){ 
     $("#**yourdivid**").html('<b>Offer Send</b>').css('background','#dce6f1'); 
     $("#**yourdivid**").attr("disabled","disabled"); 

    }else if(data=="false"){ 
     alert('You have reached the maximum number you can send todays'); 
     } 
    }); 

}); 
}); 

Рабочий код

<a id='id_0' class='buyerRequest' href='#0'>Send Offer</a> 
<div id='responseDIV'></div> 

<script> 
$(document).ready(function(){ 
    $('.buyerRequest').click(function(){ 
     var id=$(this).attr('id').replace('id_',''); 
     $.post('SendingOffer.php',{id:id},function(data){ 
      if(data=="true"){ 
       $("#responseDIV").html('<b>Offer Send</b>').css('background','#dce6f1'); 
       $("#id_0").removeAttr("href"); 

      }else if(data=="false"){ 
       alert('You have reached the maximum number you can send todays'); 
       } 
      }); 

     }); 
}); 
</script> 
+0

спасибо, но Nnot работает –

+0

вы заменить #yourdivid с идентификатором вашего собственного Div в? вы дали свой div идентификатор в первую очередь? – Veeru

+0

все еще не работает sir –

0

Может быть "это" неоднозначен здесь, попробуйте изменить в:

var currentBtn = $(this); 
var id = currentBtn.attr('id').replace('id_',''); 

$.post('SendingOffer.php',{id:id},function(data){ 
    if(data=="true"){ 
     currentBtn.html('<b>Offer Send</b>').css('background','#dce6f1'); 
     currentBtn.attr("disabled","disabled"); 

    }else if(data=="false"){ 
     alert('You have reached the maximum number you can send todays'); 
    } 
}); 

если отключенный атрибут не работает, вы можете tr у:

currentBtn.prop("disabled", true); 

Он относится к версии вашего Jquery, базовый: jQuery .attr("disabled", "disabled") not working in Chrome

Надеется, что это поможет :)

+0

Спасибо, сэр, предложение по отправке сработало, но атрибут отключен не работает –

+0

Вы бы попытались: currentBtn.prop ("disabled", true); –

0

Существовали несколько проблем. Я предполагаю, что this - это кнопка. Я создал div для применения стиля. Проблема в том, что this определяется областью действия. Внутри обратного вызова post this ссылается на фактический объект post, а не на элемент html.

<script> 

$(document).ready(function() { 

    $('.buyerRequest').click(function() { 

     var id=$(this).attr('id').replace('id_',''); 

     $.post('SendingOffer.php', {"id":id}, function(data) { 
     console.log(data); 
     if (data.length>0) { 
      $('#my_div').html('<b>Offer Send</b>').css('background','#dce6f1'); 
      $('#id_my_button').prop("disabled",true); 
     } 
     else { 
      alert('You have reached the maximum number you can send todays'); 
     } 
     }); 
    }); 
}); 

</script> 

<input type='button' class='buyerRequest' id='id_my_button' value='my_button'> 
<br/> 
<div id='my_div'></div> 
Смежные вопросы