2013-12-13 4 views
1

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

PHP:

<label for="hp_display" id="addToHP_<?php echo $x; ?>"></label><?php echo $addTo; ?>homepage: </label><input type="checkbox" id="hp_display_<?php echo $x; ?>" <?php echo $check; ?> onclick="addToHome('<?php echo md5($product['product_id']); ?>','<?php echo $add; ?>','<?php echo $x; ?>')" /> 

JAVASCRIPT:

function addToHome(id,a,n){ 
    $.ajax({ 
     url:'func/addToSlider.php', 
     type:'POST', 
     data:{type:a,id:id}, 
     beforeSend: function(){ 
      document.getElementById('addToHP_'+n).innerHTML = ''; 
      document.getElementById('addToHP_'+n).innerHTML = 'Updating'; 
     }, 
     success:function(e){ 
      if(e === '1'){ 
       document.getElementById('addToHP_'+n).innerHTML = ''; 
       if(a === 'remove'){ 
        document.getElementById('addToHP_'+n).innerHTML = 'Add to homepage'; 
       }else{ 
        document.getElementById('addToHP_'+n).innerHTML = 'Remove from homepage'; 
       } 
      }else{ 
       alert('There has been a server changing your file, please try again'); 
      } 
     } 
    }); 
} 

Это выглядит сложным, но верно innerHTML или JQuery-х .html('') вместо этого следует заменить текст добавления текста. Я мог бы просто обновить страницу об успехе ajax, но я думаю, что изменение текста ярлыка более удобно.

+0

Я думаю, что если вы используете JQuery для того, что вы описали, вы просто хотите использовать .text() – user602525

ответ

2

Ваш HTML разметка не так, у вас есть два элемента этикетки закрытия

<label for="hp_display" id="addToHP_<?php echo $x; ?>"></label><?php echo $addTo; ?>homepage: </label> 
                 ^^^^^^^^        ^^^^^^^ 

без всего знака PHP вверх это

<label>X</label>Y</label> 
2

У вас есть слишком много </label>

<label for="hp_display" id="addToHP_<?php echo $x; ?>"></label><?php echo $addTo; ?>homepage: </label> 

поэтому, когда ярлык выглядит так, будто он добавляется, он фактически заполняется в первый раз. удалить первый </label> и решить проблему.

должно быть:

<label for="hp_display" id="addToHP_<?php echo $x; ?>"><?php echo $addTo; ?>homepage: </label> 
+0

ага простые вещи, следовало бы проверить, что лучше. –

+0

Обычно это простые вещи –

+0

Да, не первый раз, возможно, не в последний раз, каждый день - это кривая обучения –

Смежные вопросы