如何用Javascript构建查询字符串 [英] How to build query string with Javascript

查看:139
本文介绍了如何用Javascript构建查询字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

只是想知道是否有任何JavaScript内置的可以接受Form并返回查询参数的内容,例如:var1 = value& var2 = value2& arr [] = foo& arr [] = bar ...



我多年来一直在想这件事。

解决方案

前段时间我尝试搜索这个问题的答案,但是我最终编写了自己的函数,从表单中提取值。



这不是完美的,但是它符合我的需求。

pre $函数form_params(形式)
{
var params = new Array()
var length = form.elements.length
for(var i = 0; i< length; i ++)
{
element = form.elements [i] $ b $ (元素标签=='TEXTAREA')
{
params [元素名称] =元素值
}
else if(element.tagName =='INPUT')
{
if(element.type =='text'|| element .type =='hidden'|| element.type =='password')
{
params [element.name] = element.value
}
else if(element .type =='radio'&& element.checked)
{
if(!element.value)
params [element.name] =on
else
params [element.name] = element.value


else if(element.type =='checkbox'&& element.checked)
{
if(!element.value )
params [element.name] =on
else
params [element.name] = element.value
}
}
}
返回params;



$ b $> form_params返回参数的一个(键 - >值)映射。
输入是表单元素(DOM元素)

它不处理允许多选的字段。

Just wondering if there is anything built-in to Javascript that can take a Form and return the query parameters, eg: "var1=value&var2=value2&arr[]=foo&arr[]=bar..."

I've been wondering this for years.

解决方案

I tried to search for an answer to this question some while ago, but I ended up writing my own function that extracts the values from the form ..

it's not perfect but it fits my needs.

function form_params( form )
{
    var params = new Array()
    var length = form.elements.length
    for( var i = 0; i < length; i++ )
    {
        element = form.elements[i]

        if(element.tagName == 'TEXTAREA' )
        {
            params[element.name] = element.value
        }
        else if( element.tagName == 'INPUT' )
        {
            if( element.type == 'text' || element.type == 'hidden' || element.type == 'password')
            {
                params[element.name] = element.value
            }
            else if( element.type == 'radio' && element.checked )
            {
                if( !element.value )
                    params[element.name] = "on"
                else
                    params[element.name] = element.value

            }
            else if( element.type == 'checkbox' && element.checked )
            {
                if( !element.value )
                    params[element.name] = "on"
                else
                    params[element.name] = element.value
            }
        }
    }
    return params;
}

form_params returns a (key -> value) mapping of the parameters. the input is the form element (DOM Element)

It doesn't handle fields that allow multiple selection.

这篇关于如何用Javascript构建查询字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆