Laravel 5 如何在提交表单时仅执行javascript onClick而不执行PHP操作
我通过laravel制作了一个表单,其中我只希望接受未来的日期。我通过javascript验证日期,并在输入过去日期时弹出一个警报,但问题是,在发出警报后,即使输入了过去日期,它也会形成动作url(表单已提交)。我希望它保留在那一页上。请帮忙Laravel 5 如何在提交表单时仅执行javascript onClick而不执行PHP操作,laravel-5,Laravel 5,我通过laravel制作了一个表单,其中我只希望接受未来的日期。我通过javascript验证日期,并在输入过去日期时弹出一个警报,但问题是,在发出警报后,即使输入了过去日期,它也会形成动作url(表单已提交)。我希望它保留在那一页上。请帮忙 <html> <script type="text/javascript"> function func() { var aa = document.getElementById('in').value; var bb=ne
<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>
函数func(){
var aa=document.getElementById('in').value;
var bb=新日期();
变量y=aa.切片(0,4);
var m=aa.切片(5,7);
var d=aa.切片(8,10);
如果((y>=bb.getFullYear()&&m>=(bb.getMonth()+1)和&d>=bb.getDate())!=1){
警报(“输入未来日期”);
}
}
在“alert();”命令之后使用“return false;”
使用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!');
}
});
}
}
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
}
}
}
在routes.php中,必须添加“dateroute”:
Route::post('dateroute', array('as' => 'dateroute', 'uses' => 'DateController@dateroute'));
您的DateController.php如下所示:
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!');
}
});
}
}
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
}
}
}
请你发一个问题代码片段好吗?@itsayushbansal请把这个答案标记为正确答案。然后其他人会得到正确的答案。