2013-09-26 518 views

回答

8

檢查此Fiddle。相關代碼:

$(function() { 
    $('#input1').on('keypress', function(e) { 
     if (e.which == 32) 
      return false; 
    }); 
}); 
+0

真的很奇怪,它似乎並沒有在我的網頁上工作...我仍然可以在電子郵件輸入中添加空格! goo.gl/0TXWGV – user123

+0

你的jQuery版本是舊的(1.5.2)。你可以更新jQuery或使用'live()'而不是'on()'。 – Raidri

+0

是的,我剛發現問題,確實是舊版本。感謝您花時間查看它。 – user123

0

是的,它是通過使用JavaScript/JQuery的可能。

如果你想要它的所有文本框,然後做如下。

$(function() { 
    $('.formfield input[type=text]').on('keypress', function(e) { 
     if (e.which == 32) 
      return false; 
    }); 
}); 

如果你想爲一個特定的文本框,然後添加一個id文本框中輸入與#textBoxId

0

使用HTML5的擴展輸入類型替換.formfield input[type=text]申請約束驗證,這將阻止隨表單提交在現代瀏覽器無效的電子郵件:

<input type="email" value="" maxlength="30" name="email" class="formfield w0"> 

在舊的瀏覽器,可以檢測輸入的類型不是「電子郵件」,因爲它會默認爲「文本」,當值視爲無效。我建議阻止提交表單,而不是阻止空格鍵的默認操作,這可能會通過粘貼或通過其他輸入方法無意中繞過。

下面的代碼是這樣的一個例子,而應該被執行後的文件已準備就緒:

var frm = document.getElementById('myform'); 

if (frm.email.type === 'text') { 
    frm.onsubmit = function() { 
     if (/\s/.test(frm.email.value)) { 
      // Tell your user the field is invalid here, e.g. 
      frm.email.className = 'invalid'; 

      // Prevent form submission 
      return false; 
     } 
    } 
} 

工作演示:http://jsfiddle.net/hgc7C/

不要忘記,這不是服務器端表單驗證的替代品。

+0

謝謝,這是一個很好的解決方案,只有在這種情況下,我不需要它減輕。 – user123

相關問題