javascript - 当使用 jQuery 完成表单提交时,如何发送非空输入?

标签 javascript jquery forms

当用户提交表单时,有一种方法只发送非空输入((那些值不等于“”))?

我想实现这个目标,因为我的网站提供了过滤数据的表单,并使用 GET 方法来指示 url 中的查询字符串,但显然是这样的

site.mx/voucher/search/?id=1,2,3,4&date_from=&date_until&comment=&status=6

这样会更漂亮

site.mx/voucher/search/?id=1,2,3,4&status=6

你;)

最佳答案

根据你所说的,你可以使用 jQuery 做这样的事情:

jQuery(function() {
    jQuery(form).on('submit',function(e) {
        e.preventDefault();
        var urlSuffix = '';
        jQuery(this).find(input).each(function() {
            if(jQuery(this).val() !== '' && jQuery(this).val() !== null) {
                if(urlSuffix == '') {
                    urlSuffix += '?';
                } else {
                    urlSuffix += '&';
                }
                urlSuffix += jQuery(this).attr('name') + '=' + jQuery(this).val();
            }
        });
        window.location = 'site.mx/voucher/search/' + urlSiffix;
    });
});

此函数首先禁用表单的“默认”提交操作,然后将所有表单字段添加到 URL 并重定向。

然而,最简单的方法是将表单的操作简单地指向: site.mx/优惠券/搜索/ 并将方法更改为“GET”

关于javascript - 当使用 jQuery 完成表单提交时,如何发送非空输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22571840/

相关文章:

jquery - Coda 中有 jQuery 代码完成的扩展吗?

javascript - 为什么 parseJSON 在服务器的以下响应中失败?

jquery - 为什么 $.when() 中没有错误时会触发 failed() ?

javascript - 表单提交后在 Node.js 中发送响应的有效方法

python - 如何通过多种形式过滤一个模型?

javascript - 循环每个 div 然后应用 css

javascript - 如何通过 AJAX 在容器应用程序中加载 React 组件

php - jQuery 点击事件一次后不触发

javascript - 辨别触摸 Action 导致的上下文菜单事件?

javascript - jQuery(.filter) : how to use numerical range instead of . 长度 <#?