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

时间:2014-09-11 14:45:55

标签: php jquery forms

我有一个这样的表格

<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>

它有一些jQuery处理程序来填写“order_by”字段。 如果我提交此表单并提交空“order_by”,我会收到如下地址:index.php?id=1&order_by=

如果“order_by”为空,我可以在表单提交后获取以下地址的最佳方式是什么:index.php?id=1

3 个答案:

答案 0 :(得分:7)

您可以停用空白字段,这样就不会将其添加为数据

$('form').submit(function(e){
    var emptyinputs = $(this).find('input').filter(function(){
        return !$.trim(this.value).length;  // get all empty fields
    }).prop('disabled',true);    
});

答案 1 :(得分:1)

在php中你可以这样做

if(!isset($_GET['order_by']) || !$_GET['order_by'])
    return 'error msg';

if(empty($_GET['order_by']))
    return 'error msg';

像这样更改HTML

   <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;
 }

答案 2 :(得分:0)

web: PORT=3000 bundle exec puma -C config/puma.rb

您可以禁用空字段(选择和输入),这样就不会将它们添加为数据,也不会添加自定义表单ID。