2016-04-10 18 views
-1

我正在学习jQuery,并且无法计算出某些东西。 我需要做的是向用户显示一个提醒或注释(我用h3),输入他们的名字,然后输入#(字符终止符)。任何用户在#符号之前键入的内容都应该在标题中更改id为userName的span元素的文本。输入#后,不能输入其他文本。我想要用户输入头文件中的命名的鬼写作效果,但我无法弄清楚,所以我把一个输入字段。我试图使用if语句将keyspressed附加到ID,否则停止输入文本。如何修改从输入接收到文本的元素,以及如果使用了字符终止符,如何停止禁用输入?

这是我有:

$(document).ready(function() { 
    $('input').on(function() { 
    $('input').keypress(function(evt) { 
    var keyPressed=String.fromCharCode(evt.which); 
    if (keyPressed !== '#') 
    { 
     $("userNameInput").append('userName'); 

    } 
    else { 
     return false; 
    } 
    }); 
    }); 
    }); 

HTML:

  <header> 
      <h1>Lab 6</h1> 
      <h2>Welcome, <span id="userName">User!</span></h2> 
      <h3>Please enter your name followed by # i.e. John#</h3> 
      <input id="userNameInput" type="text"> 
      </header> 

回答

0

你有一堆的问题......我觉得是你所追求的,但:

JSFiddle

HTML:

<h1>Lab 6</h1> 
<h2>Welcome, <span id="userName">User</span>!</h2> 
<h3>Please enter your name followed by # i.e. John#</h3> 
<input id="userNameInput" type="text"> 

JS:

$(document).ready(function() { 
    var appendName = function(evt) { 
    var keyPressed = String.fromCharCode(evt.which); 
    if (keyPressed !== '#') { 
     $("#userName").text(this.value + keyPressed); 
    } else { 
     $(this).off(); 
    } 
    }; 
    $('#userNameInput').on("keypress", appendName); 
}); 

你也可以只禁用输入字段,而不是如果你想关闭监听器...只是改变$(this).off();$(this).prop("disabled",true);


的一些问题我在你的代码中注意到......看起来你只是想做一个按键事件,但你有嵌套在onon没有事件类型。这没有任何意义,但我认为你只是想要按键事件监听器。

这个块在这里$("userNameInput").append('userName');是说要查找<userNameInput>并将字符串userName追加到它。

您忽略了#,但之后没有做任何事情来阻止任何新输入。

相关问题