I have a form like this
<form action="index.php" method="get">
<input type="hidden" name="id" value="1">
<input type="hidden" name="order_by" value="">
<button type="submit">Submit</button>
</form>
It has some jQuery handlers to fill in "order_by
" field. If I submit this form with empty "order_by
" filed, I get an address like this: index.php?id=1&order_by=
What is the best way I can do to get following address after form submission if the "order_by
" is empty: index.php?id=1
?
in php you can do like this
if(!isset($_GET['order_by']) || !$_GET['order_by'])
return 'error msg';
or
if(empty($_GET['order_by']))
return 'error msg';
change html like this
<form action="index.php" method="get" onsubmit="return valid()">
<input type="hidden" name="id" value="1">
<input type="hidden" name="order_by" id="order_by" value="">
<button type="submit">Submit</button>
</form>
javascript:
function valid(){
if(!$('#order_by').val()){
alert("Order by not found");
return false;
}
return true;
}
you can disable empty fields so they don't get added as data
$('form').submit(function(e){
var emptyinputs = $(this).find('input').filter(function(){
return !$.trim(this.value).length; // get all empty fields
}).prop('disabled',true);
});
$('form#formID').submit(function(e){
var emptyinputs = $(this).find('select').filter(function(){
return !$.trim(this.value).length;
}).prop('disabled',true);
var emptyinputs = $(this).find('input').filter(function(){
return !$.trim(this.value).length;
}).prop('disabled',true);
});
You can disable empty fields (both select and input) so they don't get added as data, and for a custom form id.