javascript - 在运行时更改表单标签文本

标签 javascript php jquery html ajax

我有一个 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 成功时刷新页面,但我认为更改标签文本对用户更友好。

最佳答案

你的 html 标记是错误的,你有两个结束标签元素

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

没有所有的 php 标记,它是

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

关于javascript - 在运行时更改表单标签文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20573894/

相关文章:

javascript - 如果单击子元素,则单击不会触发

javascript - 在 HTML 中分配 XML-AJAX 响应

php - 如何根据项目的组和数量生成列?

javascript - 单击叠加。使用Jquery模拟点击

javascript - 如何将幻灯片合并到 HTML 中?

javascript - 如何在ajax中格式化货币

PHP 忽略 php.ini 中的 curl.cainfo 设置(显然)

php - WordPress 主题消失

javascript - 限制IE11中的表单输入

javascript - .prop() 与 .attr()