スペース検証を追加しないjQuery検証カスタム検証

私はユーザーが彼の名前と姓を更新できるフォームを持っています。フォームを検証するためにjQuery検証を使用します。ユーザーがスペースを入れたらどうすれば検証できますか?

ここに私が持っているものがあります:

<script>
$(document).ready(function(){   
  $('#submit').click(function() {
  var valid = $("#myform").valid();
  if(!valid) {
    return false;
  }
  $.ajax({
    type: "POST",
    url: 'save',
    data:  $('#myform').serialize(),
    dataType: 'json',
    cache: false,
    success: function(result) {
     //redirect to another page
    }
  });
  });
  });
</script>

</head>
<body>


<form id="myform" method="post" action="">
update name

*<input id="fname" name="fname" size="25" class="required" minlength="2" />

*<input id="lname" name="lname" size="25" class="required" minlength="2" />

<input id="submit" type="submit" value="Submit"/>

</form>

ありがとう

22
追加された 編集された
ビュー: 1

1 答え

あなたのjavascriptコードのためにこれを使用してください:

$(document).ready(function() {

  jQuery.validator.addMethod("noSpace", function(value, element) { 
     return value.indexOf(" ") < 0 && value != ""; 
  }, "Space are not allowed");

  $("#myform").validate({
    errorLabelContainer: $("#error"),
    rules: {
      fname: { required: true, noSpace: true },
      lname: { required: true, noSpace: true }
    },
    messages: {
      fname: { required: 'Please enter your name' },
      lname : { required: "Please enter your last name" }
    }
  });

  $('#submit').click(function() {
    var valid = $("#myform").valid();
    if(!valid) {
      return false;
    }
    $.ajax({
      beforeSend: function() {
       //display loading message
      },
      type: "POST",
      url: 'save',
      data:  $('#formdata').serialize(),
      dataType: 'json',
      cache: false,
      success: function(result) {
        if(result.error) {
         //show error message
        }
        else {
         //redirect to another page
        }
      },
      error: function (response, desc, exception) {
       //show ajax error
      },
      complete: function() {
       //hide loading message
      }
    });
  });
});
31
追加された