首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当表单提交使用jQuery完成时,如何发送非空输入?

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

Stack Overflow用户
提问于 2014-03-22 08:29:48
回答 3查看 323关注 0票数 0

有没有办法在用户提交表单时只发送非空的输入((那些值不等于"“))?

我想要获得这个,因为我的站点提供了表单来过滤数据,并使用GET方法来指示url中的查询字符串,但显然是这样的。

代码语言:javascript
复制
site.mx/voucher/search/?id=1,2,3,4&date_from=&date_until&comment=&status=6

用这种方式会更漂亮

代码语言:javascript
复制
site.mx/voucher/search/?id=1,2,3,4&status=6

ty ;)

EN

回答 3

Stack Overflow用户

发布于 2014-03-22 08:38:27

根据您所说的,您可能会用jQuery做类似这样的事情:

代码语言:javascript
复制
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/voucher/search/并将方法更改为"GET“

票数 2
EN

Stack Overflow用户

发布于 2014-03-22 08:38:42

您可以通过使用CSS选择器仅选择非空字段来执行此操作:

代码语言:javascript
复制
$("form#search :input[value!='']").serialize()

我不能评论,因为我的声誉仍然低于50,但你能告诉我们你是如何提交表格的吗?

票数 1
EN

Stack Overflow用户

发布于 2014-03-22 08:40:28

如果你的表单操作是一个'GET‘,并且你正在使用浏览器的原生表单post/get操作来做这件事,你就不能重写你的浏览器行为(嗯,也许你可以,但你不能控制每个人的浏览器)。

如果您确实想使用ajax并通过js/ajax手动调用提交表单,您可以重写URL查询字符串并发布更干净的版本。否则..。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22571840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档