簡體   English   中英

非常簡單的JavaScript來刪除文本框中的值

[英]really simple javascript to remove value in text box

iv有一個非常簡單的javascript問題。 這里我會使用查詢來查詢部分內容,但是有一些通過javascript進行查詢的方式。 基本上,我正在寫一個小腳本,因此單擊一個文本框中的值時,它將帶走該值,以便您可以鍵入(例如,對於大多數用戶名框,它們都有一個小注釋)。 可能有更好的方法(我已經想到了),因此也可以建議它們。 無論如何,我都能輕松地運行該部件,問題在於,每當用戶再次單擊時,所有數據都將被刪除,因此,如果他們只是想調整某些內容,則無法調整。 為了解決這個問題(以秒為單位顯示代碼),我放入了一個檢查變量和一個if。 這就是它的樣子。 (不起作用,順便說一句)

var unumber = 0;
var pnumber = 0; 

 if(unumber<1){
  $('#username').click(function(){
  unumber = 1;
  $('#username').val('');
 });
 };

 if(pnumber<1){
   $('#password').click(function(){
   $('#password').val('');
   pnumber = 1;
   });
 };

我假設發生的事情是每次單擊一次都會重置變量,這會導致一個更普遍的問題,如果是這種情況,為什么整個腳本而不是事件處理程序都將運行? 我是Java語言的新手,如果這是一個愚蠢的問題,請原諒我。 無論如何,這是一個非常簡單的腳本,並且有更好,更有效的方法來執行此操作,但是如何以這種方式完成操作呢?

小於1的支票應在點擊處理程序中

var unumber = 0;
var pnumber = 0; 

$('#username').click(function(){
  if(unumber<1){
    unumber = 1;
    $('#username').val('');
  }
});

$('#password').click(function(){
  if(pnumber<1){
     pnumber = 1;
     $('#password').val('');
  }
});

請注意,這不是很可靠,它不能處理制表符。 要解決此問題,請處理focus事件。

另一個問題是,如果您未輸入任何內容並離開該字段,則不會收到該消息。 更好的方法是在字段獲得焦點時與初始值進行比較。 如果離開該字段時那里什么也沒有,請恢復為原始值。

這是一個用於創建這些占位符的jQuery插件: https : //github.com/mathiasbynens/Placeholder-jQuery-Plugin

此外,較新的瀏覽器也支持placeholder屬性,該placeholder屬性的作用完全符合http://www.paciellogroup.com/blog/2011/02/html5-accessibility-chops-the-placeholder-attribute/

我想說的最好的方法是在文本輸入中添加一個清晰的按鈕。 參見示例: 如何像iPhone一樣在HTML文本輸入框中放置一個清除按鈕?

無需進行混亂的數字檢查,使用有關元素上的數據

這應該為您工作。

$('#username,#password').focus(function(){
  if(!$(this).data('seen')) {
    $(this).data('seen',true);
    $(this).val('');
  }
});

http://jsfiddle.net/DeZ7D/

您可以存儲占位符,如果用戶未輸入任何內容,則可以重新替換為模糊。 更詳細的實現在這里:

http://www.hagenburger.net/BLOG/HTML5-Input-Placeholder-Fix-With-jQuery.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM