2016-11-15 365 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> 

而且它的工作。