Jquery:在检查最后一个字母时将文本从表单复制到 DIV

Jquery: Copy text from a form to a DIV while checking the last letter

本文关键字:文本 表单 复制 DIV 检查 最后一个 Jquery      更新时间:2023-09-26

在我的HTML表单上,用户可以输入他们的名字。然后,他们的名字将作为书名的一部分出现在 DIV 中。

书名使用撇号(例如艾米的假日专辑)。

如果用户输入的名称以 S 结尾,我不希望出现撇号 s。(例如,它应该是克里斯的假日专辑而不是克里斯的假日专辑)。

我也只希望当表单具有一类 apostrophe 时发生这种情况。如果此类不存在,则应按原样复制名称,不带任何撇号或"s"。

我知道你可以使用 slice() 来获取元素的最后一个字符,所以我想我可以把它与 if 语句结合起来。但它似乎不起作用。

这是JSFiddle

这是我的 HTML:

<div><b class="title"></b> Holiday Album</div>

这是我的Jquery(1.8.3):

$(document).ready(function() {

$('.name').keyup(function() {

    var finalname = text($(this).val());
    var scheck = finalname.slice(-1);
    var finaltitle;

    if ($(".apostrophe")[0]) {

        if (scheck == 's') {
            finaltitle = finalname + "'";
        }

        else {
            finaltitle = finalname + "'s";
        }

        $('.title').text(finaltitle);
    }
    else {
        $('.title').text(finalname);
    }
}); 

});

不需要文本方法

var finalname = $(this).val();

检查小提琴

使用

var finalname = $(this).val();

而不是

var finalname = text($(this).val());

简体版

$(document).ready(function() {
    //Code fires when user starts typing:
    $('.name.apostrophe').keyup(function() {
        if (this.value.indexOf("'s") != -1 )  {
            $('.title').text(this.value.replace(/'s/g, "'"));
        } else {
             $('.title').text(this.value)
        }
    }); /* Capture Personalised Message */
});

这也将仅将 's 的所有匹配项替换为 '。

希望对您有所帮助!