如何在GET查询中不发送空输入值

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.