不允许使用Javascript在输入中写入空格

时间:2014-04-29 07:59:15

标签: javascript

我一直在寻找很多功能,让我阻止用户在我的输入上写空间但我似乎无法与我合作的任何人......也许我不是只是以正确的方式做到这一点,我感激一点帮助。

这是我的HTML表单:

<table>
<form name="form_registar" method="post" action="registado.php" onsubmit="return validateForm()">
    <tr>
      <td colspan="2" align="center">
        <input type="text" name="user" placeholder="Nome de Utilizador" id="textboxEmail" maxlength="20">
      </td>
    </tr>
    <tr>
      <td>
        <input type="password" name="pw" placeholder="Password" id="textbox" maxlength="15">
      </td>
      <td>
        <input type="password" name="cpw" placeholder="Confirmar Password" id="textbox" maxlength="15">
      </td>
    </tr>
    <tr>
      <td>
        <input type="text" name="nome" placeholder="Nome" id="textbox" onkeypress="return isLetter(event)" maxlength="15">
      </td>
      <td>
        <input type="text" name="apelido" placeholder="Apelido" id="textbox" onkeypress="return isLetter(event)" maxlength="15">
      </td>
    </tr>
    <tr>
      <td colspan="2" align="center">
        <input type="text" name="email" placeholder="E-mail" id="textboxEmail" maxlength="50">
      </td>
    </tr>
    <tr>
      <td>
        Data de Nascimento:
      </td>
      <td>
        <input type="date" name="dataNasc" id="textbox">
      </td>
    </tr>
    <tr>
      <td>
        Masculino<input type="radio" name="sex" value="M" checked>
      </td>
      <td>
        Feminino<input type="radio" name="sex" value="F">
      </td>
    </tr>
    <tr>
      <td>
        <button type="submit" class="submit-button"><b>Registar</b></button>
      </td>
  </form>
  <form action="index.html">
  <td>
  <button type="submit" class="submit-button">Cancelar</button>
  </td>
  </form>
  </tr>
</table>

我想阻止用户在一个或多个输入字段中写入空格。我无法知道如何。

编辑:isLetter和isNumber是仅允许用户分别写字母和数字的函数。

其他信息: 这是我的javascript函数,我正在寻找阻止用户写空间的函数:

/* APENAS PERMITE NUMEROS */
 function isNumber(evt) {
         evt = (evt) ? evt : window.event;
         var charCode = (evt.which) ? evt.which : evt.keyCode;
         if (charCode > 31 && (charCode < 48 || charCode > 57)) {
             return false;
         }
         return true;
     }
     /* APENAS PERMITE LETRAS */
 function isLetter(evt) {
         evt = (evt) ? evt : event;
         var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode :
             ((evt.which) ? evt.which : 0));
         if (charCode > 31 && (charCode < 65 || charCode > 90) &&
             (charCode < 97 || charCode > 122)) {
             return false;
         }
         return true;
     }
     /* VALIDAR O FORM */
 $(function chora() {
     $('#user').on('keypress', function chora(e) {
         if (e.which == 32)
             return false;
     });
 });

 function validateForm() {
     /* USERNAME */
     var a = document.forms["form_registar"]["user"].value;
     if (a == null || a == "") {
         alert("O Username não está preenchido.");
         return false;
     }
     /* PASSWORD */
     var b = document.forms["form_registar"]["pw"].value;
     if (b == null || b == "") {
         alert("A password não está preenchida.");
         return false;
     }
     /* CONFIRMAR PASSWORD */
     var c = document.forms["form_registar"]["cpw"].value;
     if (c == null || c == "") {
         alert("A confirmação de password não está preenchida.");
         return false;
     }
     /* NOME */
     var d = document.forms["form_registar"]["nome"].value;
     if (d == null || d == "") {
         alert("O nome não está preenchido.");
         return false;
     }
     /* APELIDO */
     var e = document.forms["form_registar"]["apelido"].value;
     if (e == null || e == "") {
         alert("O apelido não está preenchido.");
         return false;
     }
     /* EMAIL */
     var f = document.forms["form_registar"]["email"].value;
     var atpos = f.indexOf("@");
     var dotpos = f.lastIndexOf(".");
     if (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= f.length) {
         alert("O E-mail não se encontra devidamente preenchido.");
         return false;
     }
     /* DATANASC */
     var g = document.forms["form_registar"]["dataNasc"].value;
     if (g == null || g == "") {
         alert("A Data de Nascimento não está preenchida.");
         return false;
     }
     /* CONFIRMAÇAO PW*/
     var h = document.forms["form_registar"]["pw"].value;
     var i = document.forms["form_registar"]["cpw"].value;
     if (h != i) {
         alert("As passwords não correspondem.");
         return false;
     }

 }

5 个答案:

答案 0 :(得分:1)

我为此制作了一个Jsfiddle。看看这里。

我使用过&#39; keyCode&#39;和&#39;哪个&#39;功能。 这适用于浏览器和IOS ipad和iphone,但不适用于Android手机。他们没有注册KeyCode&#39;或者&#39;哪个&#39;或者&#39; keyChar&#39;

var keycode;
$('.nospace').keypress(function (event) {
   keycode = (event.charCode) ? event.charCode : ((event.which) ? event.which : event.keyCode);
   if (keycode == 32) {
    return false
  };
});

检查jsfiddle链接。 http://jsfiddle.net/shinde87sagar/P5Kjr/4/

答案 1 :(得分:0)

onkeypress为时已晚。试试onkeydown

答案 2 :(得分:0)

您可以通过检查空格键是否按下然后返回false来阻止用户使用空格键:

​$("input").on("keydown", function (e) {
    return e.which !== 32;
});​​​​​

Take a look at this working example

答案 3 :(得分:0)

Working fiddle

jQuery代码

$("input").on({
    keydown: function (e) {
        if (e.which === 32) return false;
    },
    change: function () {
        this.value = this.value.replace(/\s/g, "");
    }
});

Reference

答案 4 :(得分:0)

我建议你看一下jQuery。 然后你可以使用它:

$('#textbox').on('keydown',function(){
  var $this = $(this);
  var value = $this.val();
  $this.val(value.replace(/\s+/g,'')); // remove all whitespace characters
});

此外,您有多个ID为“textbox”的元素。每个id都应该是唯一的。