2017-02-28 46 views
0

我应该按回车键提交表单防止默认不工作,不知道为什么

这个FIDDLE我的代码does not工作,但它的工作原理就这一个FIDDLE2。 我不太确定为什么,想看看有没有人知道为什么。该代码是完全一样的

var i = 0; 
var allowed = /^[a-zA-Z0-9]+$/; 

$('#form').submit(function(e) { 
    var input = $('#t_input1').val(); 
    var ar = $('#t_input1').data('name'); 
    if (!allowed.test(input)) { 
     alert("Name can have only letters and numbers.\n\n Names Already Submitted: " + ar.join(" , ")); 
     return false; 
    } else { 
     ar[i] = input; 
     alert("Your name was successfully submitted\n\n Names Already Submitted: " + ar.join(" , ")); 
     i = i + 1; 
     return false; 
    } 

}) 

回答

0

您还没有包含在第一小提琴jQuery,这就是为什么$不能得到解决或定义的错误是存在的。

第二小提琴确实包括jQuery并且它按预期工作。

-1
Add 

    $('#form').submit(function(e){ 
e.preventDefault(); // Saves from Reloading of page 
var input = $('#t_input1').val(); 
    var ar = $('#t_input1').data('name'); 
    if(!allowed.test(input)){ 
     alert("Name can have only letters and numbers.\n\n Names Already Submitted: "+ ar.join(" , ")); 
     return false; 
    }else{ 
    ar[i]= input; 
      alert("Your name was successfully submitted\n\n Names Already Submitted: "+ ar.join(" , ")); 
     i = i+1; 
     return false; 
    } 
}); 
+0

没有工作不确定 – Lawl

-1

请尝试下面的代码
当输入与您的正则表达式不匹配时,将发生验证,页面将不会提交。在如果
使用的preventDefault(!allowed.test(输入)){

$('#form').submit(function (e) { 
      var input = $('#t_input1').val(); 
      var ar = $('#t_input1').data('name'); 
      if (!allowed.test(input)) { 
       alert("Name can have only letters and numbers.\n\n Names Already Submitted: " + ar.join(" , ")); 
       e.preventDefault(); 
       return false; 
      } else { 
       ar[i] = input; 
       alert("Your name was successfully submitted\n\n Names Already Submitted: " + ar.join(" , ")); 
       i = i + 1; 
       return false; 
      } 
     }) 
+0

由于jQuery不工作 –

0

是表示$没有定义。这意味着您的项目中不包括jQuery。 在您的代码中添加jQueryworking fiddle here