2016-04-10 20 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追加到它。

您忽略了#,但之後沒有做任何事情來阻止任何新輸入。

相關問題