提交表单时jquery无法正常工作

时间:2017-07-04 11:02:54

标签: jquery html forms form-submit

$(document).ready(function(){
  $("#name").blur(function(){
    var name = $("#name").val();
      if ( $(this).val().match('^[a-zA-Z]{3,16}$') ) 
    {
    $("#check_name").html("Good Name").hide();
    } 
else {
  $("#check_name").html("That's not a name.");
    }

如果错误,则插入值。当我们很快提交form.need帮助时,它不会验证数据。

4 个答案:

答案 0 :(得分:1)

您需要在表单上进行实际验证。

https://jqueryvalidation.org/

添加jquery验证并设置后,可以使用

<form id="myForm">
<input type="submit" value="Send"/>
</form>

<script>
    $("#myForm").submit(function(){
       $("#myForm").validate();
    };
</script>

答案 1 :(得分:0)

尝试使用正则表达式模式/pattern/g

 $(this).val().match(/^[a-zA-Z]{3,16}$/g)

而不是

$(this).val().match('^[a-zA-Z]{3,16}$') 

它没有验证?

因为您匹配的字符串不是模式

$(document).ready(function(){
  $("#name").blur(function(){
    var name = $("#name").val();
      if ( $(this).val().match(/^[a-zA-Z]{3,16}$/g) ) 
    {
    $("#check_name").html("Good Name").hide();
    } 
else {
  $("#check_name").html("That's not a name.");
    }

答案 2 :(得分:0)

这将有效:

$(function(){
  $("#name").blur(function(e){
    var name = $(e.target).val();    
    if ( name.match('^[a-zA-Z]{3,16}$') )  {
        $("#check_name").html("Good Name").hide();
    }else {
        $("#check_name").html("That's not a name.").show();
    }
    })
});

如果您还想查看&#34; Good Name&#34;,请删除.hide();)

答案 3 :(得分:0)

使用.test而不是.match来检查是否出现。另外,你的正则表达式是否正确,它会处理每个名字吗?也可以在regex测试器上的某处验证正则表达式。

Https://stackoverflow.com/questions/8606117/javascript-regexp-using-val-match-method