我必须在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>
如果我可以检查选中的单选按钮
,它也可以工作答案 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;]不存在(未创建)。