Javascript 仅在填充文本时启用按钮(无空格)

Javascript 仅在填充文本时启用按钮(无空格),javascript,jquery,html,Javascript,Jquery,Html,我四处寻找我的问题的答案,但我找到的所有解决方案都没有考虑到空间也可以作为输入 我有一个连接功能,如果用户只进入空间,则不应启用该按钮。它应该需要实际的文本。有人能解决这个问题吗 以下是我的功能: $("#join").click(function(){ var name = $("#name").val(); if (name != "") { socket.emit("join", name); $("#logi

我四处寻找我的问题的答案,但我找到的所有解决方案都没有考虑到空间也可以作为输入

我有一个连接功能,如果用户只进入空间,则不应启用该按钮。它应该需要实际的文本。有人能解决这个问题吗

以下是我的功能:

$("#join").click(function(){
        var name = $("#name").val();
        if (name != "") {
            socket.emit("join", name);
            $("#login").detach();
            $("#UsersOnline").show();
            $("#msg").show();
            $("#messaging").show();
            $("#msg").focus();
            ready = true;
        }
您可以使用jquerytrim()

编辑:

正如@David Thomas指出的,我们也可以使用

函数updateResult(){
var before=$(“#name”).val().replace(/\s/g,'SPACE');
变量名称=$(“#名称”).val().trim();
$('#result').text('Before:'+Before+“\n之后:“+name”);
}
$(文档).ready(函数(){
updateResult();
$('body')。在('keyup','#name',函数()上{
updateResult();
});
});

默认情况下,我为名称留下了一个空格

名称:


name的值:empty
您可以尝试替换所有空格
$(“#name”).val().replace(/\s/g,”)
,如果留下的是空字符串是因为没有实际文本。
如果(name.trim()!=”)
如果(name.trim().length)
,尽管这种方法允许
名称
字符串中的字符之间使用空格,但会删除前导和尾随的空格字符。请记住,您的用户知道他们的名字,并且经常会被一个过于热心的正则表达式所困扰,该正则表达式告诉用户他们的名字是无效的;请看(在Wired上)的故事。虽然jQuery是一个选项,但为什么要调用jQuery来模拟呢?你说得很对,我想我已经过度沉迷于jQuery了,因为它使我对普通javascript非常熟悉。我将更新我的回答。我是否需要一个if函数来确保按钮不工作,除非有文本填充?是的,很抱歉,示例代码演示了.trim()的工作原理。请使用
if(name.trim()!=“”){
作为if语句来尝试您的代码。啊,好的..效果很好!再次感谢
var name = $.trim($("#name").val());
var name = $("#name").val().trim();