unescape()函数返回什么?

时间:2013-08-25 20:51:41

标签: javascript

我必须在if-else语句中使用unescape()函数。在我的网站上,我有两个页面,一个是用户填写的表单,另一个是必须通过unescape函数从填写的表单中获取信息。我需要if-else语句,因为在表单中我放了两个单选按钮,每个按钮添加不同的文本区域,其中包含不同的ID和名称,因此我想在第二页中检查填充的文本字段。 (通过单击启动javascript函数的单选按钮创建的所有字段,因此在下一页中我必须检查字段是否已创建,而不仅仅是检查它是否是未填充的文本字段)。 我有点难以解释所以只需检查代码。在代码中,您将看到params [“placeName”]等等,因此placeName例如像所有其他的一样是上一页中的文本字段名称。 所以问题是 - 如果我作为参数插入的组件名称确实存在于上一页中,那么unescape函数会返回什么?

    <script type="text/javascript">
            function getParams() {
                var idx = document.URL.indexOf('?');
                var params = new Array();
                if (idx != -1) {
                    var pairs = document.URL.substring(idx + 1, document.URL.length).split('&');
                    for (var i = 0; i < pairs.length; i++) {
                        nameVal = pairs[i].split('=');
                        params[nameVal[0]] = nameVal[1];
                    }
                }
                return params;
            }
            params = getParams();
//from here it is what I want to do (I don't know if this condition in the if statement is correct, this is what I ask)
            // if (unescape(params["placeName"]) == false) {
       //    }
          //  else {
                var place = unescape(params["placeName"]);
                var country = unescape(params["country"]);
                var city = unescape(params["city"]);
                var address = unescape(params["address"]);
                var type = unescape(params["type"]);
                var rate = unescape(params["rate"]);
         //   }
        </script>

如果我可以检查选中的单选按钮

,它也可以工作

2 个答案:

答案 0 :(得分:1)

undecode函数返回-as它的名称 - 解码后的字符串。如果输入未定义的值,则可能会因为不确定而导致错误。如果你想要的是检查元素是否被创建,你可以使用

if (params.placeName !== undefined) {
    // It was created
}

代替。

另外,如果您想检查选中了哪个单选按钮,请使用

if (document.getElementById('foo').checked) {
    // Radio button with id 'foo' was checked
} else if (document.getElementById('bar').checked) {
    // Radio button with id 'bar' was checked
} else if
...

答案 1 :(得分:1)

如果unescape(params["something"])不存在,您问params["something"]会返回什么。答案是undefined。所以你需要检查&#34; undefined&#34;的等价性。含义:if (unescape(params["placeName"]) == "undefined")(在这种情况下,params [&#34; placeName&#34;]不存在(未创建)。