2015-10-02 32 views
2

我正在通過laravel製作一個表單,我只想接受將來的日期。我通過JavaScript驗證日期,並在輸入過去日期時彈出警告但問題是,即使過去的日期被輸入,警報之後它將形成動作url(表單被提交)。我希望它保持在那個頁面上。請幫忙。如何僅執行javascript onClick而不是提交表單的PHP操作

<html> 
<script type="text/javascript"> 
function func() { 
    var aa = document.getElementById('in').value; 
    var bb=new Date(); 
    var y=aa.slice(0,4); 
    var m=aa.slice(5,7); 
    var d=aa.slice(8,10); 
    if((y>=bb.getFullYear() && m>=(bb.getMonth()+1) && d>=bb.getDate())!=1) { 
    alert('Enter future date'); 
    } 
} 
</script> 

<body> 
    <form action="/submitted" method="post"> 
    <input id="in" type="date" name="sdate"> 
    <input type="submit" onClick="func()"></form> 
</body> 
</html> 
+0

你會發佈一個代碼片段嗎? – jfadich

回答

1

使用「return false;」在「alert()」之後命令。

if((y>=bb.getFullYear() && m>=(bb.getMonth()+1) && d>=bb.getDate())!=1) 
    { 
     alert('Enter future date'); 
     return false; 
    } 
+0

Thanks.It工作。 – itsayushbansal

+0

@itsayushbansal請將此答案標記爲正確答案。然後其他人將得到正確的。 – namal

0

使用Ajax發送的數據是這樣的:

function func() { 
    var aa = document.getElementById('in').value; 
    var bb = new Date(); 
    var y = aa.slice(0, 4); 
    var m = aa.slice(5, 7); 
    var d = aa.slice(8, 10); 
    if ((y >= bb.getFullYear() && m >= (bb.getMonth() + 1) && d >= bb.getDate()) != 1) { 
    alert('Enter future date'); 
    } else { 
    var dataString = { 
     'date': aa 
    }; 
    $.ajaxSetup({ 
     headers: { 
     'X-CSRF-Token': $('meta[name=_token]').attr('content') 
     } 
    }); 
    $.ajax({ 
     url: "dateroute", 
     type: "post", 
     data: dataString, 
     success: function(data) { 
     alert('Good job!'); 
     } 
    }); 
    } 
} 

在你routes.php文件,你必須添加 'dateroute':

Route::post('dateroute', array('as' => 'dateroute', 'uses' => '[email protected]')); 

你DateController.php這樣的:

namespace App\Http\Controllers; 
use Request; 
use Input; 
class DateController extends Controller { 

    public function dateroute() { 
     if (Request::ajax()) { 
      $data = Input::all(); 
      //here are all datas from ajax datastring 
     } 
    } 
} 
相關問題