【问题标题】:How can I change the label text in jQuery?如何更改 jQuery 中的标签文本?
【发布时间】:2012-05-05 03:25:39
【问题描述】:

我有一个文本框和一个标签。如果用户想要更改标签文本,他/她必须在文本框中输入文本。每次用户在更改文本框中输入内容时,如何更新标签文本?

我知道可以将 AJAX 与 jQuery 和 PHP 一起使用。有没有更简单的方法? 请告诉我。这是我的代码和链接:http://jsfiddle.net/uQ54g/1/

$('#change1').change(function(){
    var l = $(this).val();
    $('label').replaceWith(l);


});

【问题讨论】:

  • 您的小提琴中的代码正在工作中的更改是在输入值后在模糊单击文本框侧时触发的
  • 您是要在输入每个字母后还是在用户完成更改后才这样做?

标签: php jquery ajax onchange


【解决方案1】:

首先,您必须使用.text.html 在jquery 中设置标签内的文本。您当前的代码实际上将删除标签元素并仅替换为文本。因此,如果您再次尝试编辑该值,它将不再起作用。您可能还想在标签中添加一个类或一个 ID,因为您很可能会在一个页面上拥有多个标签。

HTML:

<input type="text" id="change1"/><br/>
<label id="test">Hello</label>

Javascript:

$('#change1').change(function(){
    var l = $(this).val();
    $('#test').text(l);
    // OR $('#test').html(l);
});

如果您想在输入每个字符后更改标签,则需要使用keyup 而不是change

这是更新的jsfiddle

【讨论】:

  • 感谢您的回答!这对你来说是多么容易弄清楚。如您所见,我是 JavaScript 的初学者。我还有一个问题,你会知道如何回答。我想在用户重新登录时保存这些更改。使用我拥有的代码将这些更改保存到数据库的最佳解决方案是什么?如果它使用来自 jQuery Ajax 和 PHP 的请求,你能指导我完成它吗?
  • 发布另一个问题,详细说明您正在尝试做什么以及您当前的代码。如果我和其他人能看到大局,就会更容易理解。我相信有人能帮助你。
【解决方案2】:

正如我在 cmets 中提到的那样,您小提琴中的代码运行良好,或者您可以使用 keyup 之类的

$('#change1').keyup(function(){
var l = $(this).val();
$('label').text(l);
//alert($('#change1').val())
});

http://jsfiddle.net/uQ54g/4/

还请注意,当您使用replaceWith 时,它将替换匹配的元素,在您的情况下,它在触发更改后label &lt;label&gt;hello&lt;/label&gt; 将替换为Changed Text,所以如果您再次使用$("label")它会返回未定义的,see it for yourself

【讨论】:

    【解决方案3】:

    试试这个:

    $('#change1').keyup(function(){
    l=$(this).val()
    $('label').html(l)
    })
    

    【讨论】:

    • $(label) 将抛出一个错误,根据 OP 提供的标记,ID 为 change1
    【解决方案4】:

    将它与 jquery 库一起使用

    $('#change1').on('keyup',function(){ //Change1 is id of textbox
       $('#label1').html($(this).val()) //label1 is the id of the label
    });
    $('#change1').blur(function() { //if we copy paste some text into the textbox it will also work if use this blur and trigger function
       $(this).trigger('keyup');
    });
    

    【讨论】:

      【解决方案5】:

      这个怎么样

      $('#change1').change(function(item){
           $('label').text(item.target.value);
      });
      

      【讨论】:

      • 这将仅用文本替换标签,并且在第一次更改文本框值后将不再起作用。
      猜你喜欢
      • 1970-01-01
      • 2011-04-04
      • 1970-01-01
      • 2018-09-03
      • 2015-01-28
      • 1970-01-01
      • 1970-01-01
      • 2019-06-03
      • 1970-01-01
      相关资源
      最近更新 更多