如果在提交之前尚未更新值,请从表单中删除隐藏的输入

时间:2014-11-16 21:57:30

标签: javascript jquery html forms

我在下面有以下表格。当用户提交搜索表单时,如果他们没有例如选择一个区域,我想要任何隐藏的输入,其值仍然没有被删除,因此它不会将该属性传递给url sting

<form role="search" method="get" class="search-form form-inline" action="/test-results/">
          <input type="hidden" value="" name="Price" id="price">
          <input type="hidden" value="" name="Region" id="region">

          <div class="input-group">
            <select class="price">
              <option value="">Price</option>
              <option value="20">$20</option>
              <option value="500-1000">$500-1000</option>
              <option value="1500–2000">$1500–$2000</option>
              <option value="2000–2500">$2000–$2500</option>
              <option value="2500–3000">$2500–$3000</option>
              <option value="3000–3500">$3000–$3500</option>
              <option value="3500–4000">$3500–$4000</option>
              <option value="4000–4500">$4000–$4500</option>
              <option value="4500–5000">$4500–$5000</option>
              <option value="6500–7000">$6500–$7000</option>
              <option value="7000-9000">$7000-$9000</option>
              <option value="9500–10000">$9500–$10000</option>
              <option value="10000-30000">$10000-$30000</option>
              <option value="20000">$20000</option>
            </select>
            <select class="region">
              <option value="">Region</option>
              <option value="Place1">Place1</option>
              <option value="Place2">Place2</option>
              <option value="Place3">Place3</option>
              <option value="Place4">Place4</option>
              <option value="Place5">Place5</option>
            </select>
            <span class="input-group-btn">
              <button type="submit" class="search-submit btn btn-default"><?php _e('Search Resorts', 'roots'); ?></button>
            </span>
          </div>
        </form> 

想法?

1 个答案:

答案 0 :(得分:0)

您可以删除空白隐藏元素,如下所示:

$('form').on('submit', function() {
    $(':hidden').filter(function() {
        return $.trim( this.value ) === '';
    })
    .remove();
});

另一种选择是让他们最初禁用,当设置值时,他们可以启用; 已禁用字段不包含在查询字符串中。