我创建了<asp:textbox id="TextBoxPassnummer" OnClick="openPopup()" />
。当用户点击文本框时,弹出窗口将通过JS打开:
function openPopup(){
var myWindow = newwindow = window.open("http://localhost:59969/test.aspx", "Anleitung", "width=200, height=800, toolbars=0, width=950, left=200,top=200,scrollbars=1,resizable=1");
}
Popup-Windows包含有关在文本框中输入内容的信息(TextBoxPassnummer
)。用户关闭Popupwindow后,方法openPopup()
如果单击文本框输入其信息,则不应再次执行。使用上面显示的代码,PopupWindows每次都会打开。
如何解决此问题,任何建议?感谢...
也是这样尝试的:
<% bool windowHasOpened = false; %>
if(windowHasOpened == false){
function openPopup(){
var myWindow = newwindow = window.open("http://localhost:59969/test.aspx", "Anleitung", "width=200, height=800, toolbars=0, width=950, left=200,top=200,scrollbars=1,resizable=1");
<%windowHasOpened = true; %>
}
答案 0 :(得分:3)
如果您有jQuery,可以使用one
。它将绑定一次性事件监听器,在第一次使用后解除绑定。使用此功能时,您必须从onClick="openPopup()"
元素中删除#TextBoxPassnummer
。
function openPopup() {
alert("popup opend");
}
$("#TextBoxPassnummer").one("click", openPopup);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id="TextBoxPassnummer"></textarea>
&#13;
答案 1 :(得分:0)
您有两种选择:
存储变量windowHasOpened
,将其设置为false
。然后在openPopup
内只有windowHasOpened === false
才会继续打开窗口。第一次调用该函数时,请设置windowHasOpened = true
。
OR
在代码中添加事件侦听器(确保代码在文档加载后运行)。
document.getElementById("TextBoxPassnummer").addEventListener('click', openPopup);
然后在openPopup
中,删除这样的监听器:
document.getElementById("TextBoxPassnummer").removeEventListener('click', openPopup);
如果你愿意,你可以使用像jQuery这样的库,但它可能有点过分(简单的JavaScript,但是很难)。