在模糊/退出时应用程序中所有输入文本字段中修剪空格

时间:2017-09-22 14:30:21

标签: jquery

解决方案(TRIM LEADING / TRAILING ON BLUR)

$('input[type=text]').blur(function() {
    $(this).val($(this).val().trim());
});

原始问题

我需要全局修剪所有输入文本字段中的所有空格。选项1和2不起作用,而选项3确实有效。那是为什么?

        // Attach an on-blur event to trim whitespace on all input fields
        $('input[type=text]').blur(function() {
            alert('Blur Before Val = ' + $(this).val() + ' Length = ' + $(this).val().length);
            $.trim($(this).val());  // OPTION 1 DOES NOT WORK
            $(this).val().trim();   // OPTION 2 DOES NOT WORK
            $(this).val($(this).val().replace(/\s/g,""));  // OPTION 3 WORKS
            alert('Blur After Val = ' + $(this).val() + ' Length = ' + $(this).val().length);
        });

1 个答案:

答案 0 :(得分:1)

$.trim($(this).val());  // OPTION 1 DOES NOT WORK

这个不会更新文本框。此外,它仅删除出现在字符串开头或结尾的那些空格。请参阅this

$(this).val().trim();   // OPTION 2 DOES NOT WORK

同样,这个不会更新文本框。您可以像$(this).val(newValue)一样更新文本框的值。此外,它只从开头和结尾删除空格。请参阅this

$(this).val($(this).val().replace(/\s/g,""));  // OPTION 3 WORKS

这是更新文本框值的正确语法。正则表达式(/\s/g)匹配每个空格 - 包括单词之间的空格,并用空字符串替换它们。所以,这就是它起作用的原因。