打开一个新窗口/选项卡
本文关键字:窗口 选项 一个 新窗口 | 更新日期: 2023-09-27 18:26:50
我正在一个捐款网站上工作。在我的页面中,我有一个文本框,它接受用户的数字值(即要捐赠的钱)。
在我的代码隐藏中,我有一个方法来检查文本框中的值是否为数字。如果数字无效,该方法将生成一条错误消息。
我还有一个JavaScript,在检查文本框中的值是否为数字后,它会打开网站确认页面的新选项卡,感谢用户的捐赠。以下是javascript的代码:
<script type="text/javascript">
function Open_Window()
{
var textbox = document.getElementById('DonationTextBox');
if (textbox.value != "")
{
if (isNan(textbox) == false)
{
window.open("DonationConfirmation.aspx")
}
}
}
</script>
问题是,即使号码有效,标签也永远不会打开。你能帮我解决这个问题吗?非常感谢。
p.S.
这是启动验证的按钮的代码:
<asp:ImageButton ID="PayPalButton2" runat="server" ImageAlign="Middle"
ImageUrl="Resources/Icons/PayPalCheckOut.gif"
onclick="PayPalButton2_Click" OnClientClick="Open_Window()"/>
函数名称为isNaN
。注:最后的"N"是大写。这应该能解决你的问题。
<script type="text/javascript">
function Open_Window()
{
var textbox = document.getElementById('<%=DonationTextBox.ClientID%>');
if (textbox.value != "" && !isNaN(textbox.value)) {
window.open("DonationConfirmation.aspx");
}
}
</script>
编辑
而不是isNan应该是isNan(javascript区分大小写)
这行不应该。。。
if (isNan(textbox) == false)
就这样吧。。。
if (isNan(textbox.value) == false)
首先,我建议显式解析数字,而不是依赖于将字符串传递到isNaN
时将应用的隐式ToNumber
操作。假设您的用户正在输入十进制,所以如果它是一个整数(例如,10),请使用:
var num = parseInt(textbox.value, 10);
如果它是一个带有分数成分的数字(例如10.5),请使用:
var num = parseFloat(textbox.value);
您可能想要parseFloat
作为货币值。
然后您的if
条件在num
:上变为isNaN
(注意最后的N
是有上限的)
<script type="text/javascript">
function Open_Window()
{
var textbox = document.getElementById('DonationTextBox');
var num = parseInt(textbox.value, 10);
if (!isNaN(num))
{
window.open("DonationConfirmation.aspx")
}
}
</script>
最后,你确定文本框的客户端ID真的是"捐赠文本框"吗?ASP自动生成客户端ID,您可能需要使用ClientID
,例如:
var textbox = document.getElementById('<%=DonationTextBox.ClientID%>');
下面是一个精简的工作jsFiddle示例:
http://jsfiddle.net/pjgalbraith/QZeSF/
html:
<a href="javascript:void(0)" id="PayPalButton2">Open</a>
<textarea id="donationTextBox">1</textarea>
js:
function openWindow() {
if($('#donationTextBox').val() && isNaN($('#donationTextBox').val()) === false)
window.open("http://www.google.com/", "mywindow");
}
$(document).ready(function() {
$('#PayPalButton2').click(function(){
openWindow();
});
});