2015-11-20 33 views
0

我正在使用表單來獲取名稱和說明。當用戶嘗試更新詳細信息時,我顯示驗證消息以顯示「名稱已存在」。 我使用下面的代碼來顯示消息正在使用:驗證消息在使用按鍵事件識別輸入鍵時未顯示

$('#name').bind("keypress", function(e) { 
    if (e.keyCode == 13) { 
     e.preventDefault(); 
     updateName(); 
     return false; 
    } 
}); 

「功能updateName(){$ 阿賈克斯({ 類型: 「POST」, URL: 「/姓名/名稱」, 數據:POSTDATA, 異步:假, 成功:功能(數據){ 如果(data.NameExists){ $( 「#名字」)的html( 「名已經存在」);

}」

當我按下時輸入驗證消息顯示,當我釋放時輸入密鑰消息消失。我也嘗試過keydown活動。但它不起作用。

任何人都可以幫助我獲得您的經驗。謝謝!

+0

請包括所有相關的代碼來質疑。 – guradio

+0

我試過了你的,但它是工作文件,這裏是小提琴http://jsfiddle.net/mayanksaxena19/ssndnxju/2/。你是否缺少任何代碼? – Mayank

回答

0

嘗試使用這種結構......

$(document).keypress(function(e) { 
    if(e.which == 13) { 
    // enter pressed 
    } 
}); 

$(document).on('keypress', function(e){ 
    if (e.which == 13) { 
     e.preventDefault(); 
     //Do stuff 
    } 
}); 

希望這有助於

+0

你可以添加解釋爲什麼這應該被使用? – guradio

1

你可以嘗試如下: - 標記的

$('#name').bind("keyup", function(e) { 
    if (e.keyCode == 13) { 
     updateName(); 
     e.preventDefault(); 
     return false; 
    } 
}); 
+0

你可以添加解釋爲什麼這應該被使用? – guradio

1

假設:<input type="text" id="name" />

$('#name').on("keyup", function(e) { 
    if (e.which == 13) { 
     e.preventDefault(); 
     updateName(); 
    } 
}); 
  • 「按鍵」將如果按住事件多次觸發。
  • 使用「keyup」在發佈時觸發。
  • 使用e.which作爲jQuery標準化的關鍵值。

如果您防止默認值,則不需要返回false - 您是否也希望防止傳播?

如果用戶選項卡退出?