2016-12-05 35 views
0

我希望當我將注意力集中到文本框,如果它是空的,它應該顯示「名稱是必需的」,如果我們鍵入單個字母的消息(「名稱是必需的」)應該消失。如何使文本框在運行時進行驗證

$("#name").focus(function() { 
 
    var name = $("#name").val(); 
 
    if (name != "") { 
 
    $("#name-error").text(""); 
 
    } else { 
 
    $("#name-error").text("Name is required."); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
Here is a text box in form for name in a form 
 
<label>My Name:</label> 
 
<input type="text" id="name" /> 
 
<span id="name-error">*</span>

+0

考慮使用表單驗證插件,例如'https:// jqueryvalidation.org /' – root

+0

'placeholder'屬性 – Alexis

+0

使用''keydown''或''keyup'' –

回答

1

使用.keyup事件處理程序,

$("#name").on('keyup focus',function() { 
 
    var name = $("#name").val(); 
 
    if (name != "") { 
 
    $("#name-error").text(""); 
 
    } else { 
 
    $("#name-error").text("Name is required."); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<label>My Name:</label> 
 
<input type="text" id="name" /> 
 
<span id="name-error">*</span>

+0

如果我使用keydown或keypress而不是keyup會發生什麼? –

+0

@KoteswaraRao其基本上取決於你。根據您的要求,我發現您需要檢查用戶輸入是否符合要求。只要用戶完成提供輸入,您就會觸發您的支票。 – ScanQR

+0

好的,謝謝@TechBreak –

0

一切都在這裏很好,需要一個修正。你要隱藏用戶輸入的錯誤,如:

$("#name").keydown(function(){ 
    $("#name-error").text(""); 
}); 

但我建議你使用jQuery插件像Jquery Validation