【发布时间】:2011-12-21 12:35:46
【问题描述】:
我有一个被输入 type="image" 标记调用的 javascript 函数,该标记生成一个 url 并将其分配给 window.location。
问题是,除非我从函数中返回 false 并且我真的闯入代码并单步执行返回,否则它将不起作用。
从字面上看,如果我让代码运行,它会刷新页面但不会重定向到新的 url(url 已被验证正确)。但是,如果我在 javascript 中的 window.location = 'url' 处放置一个断点,然后单步执行“return false;”声明,它会起作用的。
在 NET 中的 firebug 中,当它不重定向时,它会显示该调用的 GET 旋转并且永远不会完成。
<input type="image" runat="server" id="btnFind" src="images/search.png" align="top" name="Go" onclick="ValidateAndRedirectSearchResults()"/>
我将 runat 设置为服务器,因为我在后面的代码中设置了 src 以及 CausesValidation 属性为 false。
有什么建议吗?
function ValidateAndRedirectSearchResults() {
var text = document.getElementById('<%=someTextBox.ClientID %>').value;
var url;
if (ValidateSearchBoxContent(text)) {
var criteria = ConvertStringToAscii(text);
var tempUrl = document.getElementById('<%=tempUrl.ClientID %>').value;
url = tempUrl + encodeURIComponent(criteria)
//if I break here and step to return statement it works
//I have tried window.location.href = url as well
window.location = url;
}
return false;
}
【问题讨论】:
-
可以发一下
ValidateAndRedirectSearchResults()的出处吗?或者至少是执行重定向的相关部分? -
我已经用我的代码更新了它。
-
尝试将
alert(url);放在window.location行之前。确保它得到一个有效格式的 url -
@Bryan - 我有,我在我的问题中输入了(网址已被验证正确),因为我首先验证了这一点。我可以获取 url 属性值并粘贴到地址中。
标签: javascript asp.net webforms