2016-11-15 59 views
0

我卡在这里:防止阿贾克斯与空白输入提交,并选择

//Saving Data 
    $('#saveButton').click(function(){ 

     var teamA = $('#teamA').val(); 
     var teamB = $('#teamB').val(); 
     var date = $('#date').val(); 
     var timeOfEvent = $('#timeOfEvent').val(); 
     var live = "0"; 
     if($("#live").is(':checked')) 
      live = $('#live').val(); 

     $.ajax({ 
      url : "ajax.php", 
      type : "POST", 
      async: false, 
      dataType: "json", 
      data : 
      { 
       'submitAddEvents' : 1, 
       'teamA' : teamA, 
       'teamB' : teamB, 
       'date' : date, 
       'timeOfEvent' : timeOfEvent, 
       'live' : live, 
      }, 
      success:function(data) 
      { 

       if(!data.success) { 
        alert(data.message); 
       }else{ 
        window.location = "addEvents.php"; 
       } 

      } 
     }); 
    }); 

这就是我已经有..这是“一切”确定的,但即使在inputsrequiredselects当我点击按钮这将数据插入,而不防止空白输入或选择数据库...

什么,我已经做了 我把<form>,我改变了我的AJAX

$('#saveButton').click(function(){ 

$('#saveButton').submit(function(ev){ 
ev.preventDefault(); 

,并没有工作。在这种情况下,它会阻止空的投入,但是当我填的是输入和点击按钮没有任何反应..

回答

1

你必须选择形式,而不是你的按钮附加提交监听器,而不是这样的:

$('#saveButton').submit(function(ev){ 
ev.preventDefault(); 

变化:

$('#myform').submit(function(ev){ 
ev.preventDefault(); 
1

首先而不是使用 .val()给您的每个输入所有的,你可以只使用var data = $("#myform").serialize();,你将有表单内所有提交的输入,你可以做一个console.log(data);,你会看到的结果有。

的另一件事是:如果你想验证数据,你需要注册表单提交,而不是按一下按钮,这样,而不是使用$("#savebutton").click(function(){});使用$("#myform").on('submit', function(){});和你所有的HTML投入应该是这样的:

<input type="text" name="stack" placeholder="Name" required> 

而且它的工作。