у меня есть
<a class="zipbutton" onclick="window.open('www.site.com/zipfinder/','popupwindow'...>
.
На моей домашней странице есть 2 поля ввода. От почтового индекса и почтового индекса. Рядом с ними находятся кнопки привязки, которые открывают страницу, на которой пользователь может найти почтовый индекс, основанный на городе и состоянии, а затем отправляют почтовый индекс в соответствующее текстовое поле. То, что я сделал, я создал две отдельные страницы для каждой кнопки привязки. Есть ли способ объединить их в одно всплывающее окно?
Вот пример кода для одной из всплывающих страниц:
<script language="Javascript" type="text/javascript">
function post_value(){
window.opener.document.getElementById("FromZip").value = document.getElementById("cityBox").value;
self.close();
}
</script>
а также
function post_value(){
window.opener.document.getElementById("ToZip").value = document.getElementById("cityBox").value;
self.close();
}
Вот несколько примеров для этого. Я использую JQuery для этого.
Html-форма
<form>
<input type="text" id="FromZip" name="FromZip">
<a href="#" class="button_open_Fromzipcode">Zip code</a>
<br>
<input type="text" id="ToZip" name="FromZip">
<a href="#" class="button_open_Tozipcode">Zip code</a>
</form>
<div id="zipcodes">
<a href="#" class="button_close_zipcode">Close</a>
<br>
<!--LOAD YOUR ZIP CODES HERE-->
<!--For Example-->
<a href="#" class="zipcode">0001</a><br>
<a href="#" class="zipcode">0002</a><br>
<a href="#" class="zipcode">0003</a><br>
<a href="#" class="zipcode">0004</a><br>
<a href="#" class="zipcode">0005</a><br>
<a href="#" class="zipcode">0006</a><br>
<a href="#" class="zipcode">0007</a>
</div>
Стиль для контейнеров zipcodes
<style type="text/css">
#zipcodes
{
display: none;
color:#000;
background-color: #eee;
text-align: left;
min-height: 100px;
box-shadow: 0px 0px 7px #000;
position: absolute;
width:200px;
height: 200px;
top:40%;
left:40%;
padding: 16px;
z-index:1000;
}
</style>
Вот сценарий Jquery. Обязательно добавьте библиотеку jquery в тег заголовка
<script type="text/javascript" src="http://code.jquery.com/jquery-2.0.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var zipbox;
//Open zipcode container
$(".button_open_Fromzipcode").click(function(e){
e.preventDefault();
$("#zipcodes").css("display","block");
zipbox="FromZip";//flag the return textbox
});
//Open zipcode container
$(".button_open_Tozipcode").click(function(e){
e.preventDefault();
$("#zipcodes").css("display","block");
zipbox="ToZip";//flag the return textbox
});
//Close zipcode container
$(".button_close_zipcode").click(function(){
$("#zipcodes").css("display","none");
});
$(".zipcode").click(function(){
$("#"+zipbox).val($(this).text());//Set selected zipcode to Textbox
$("#zipcodes").css("display","none");//Close zipcode container
});
});
</script>
Вы всегда можете использовать -
1) event.srcElement в Internet Explorer
2) event.target в большинстве других браузеров.
Это даст элемент src, из которого событие click возникло в вашем случае анкерного элемента. Добавьте фильтр в идентификатор элемента и используйте только одно всплывающее окно.
Щелкните здесь для получения дополнительной информации.
Образец кода:-
<script language="Javascript" type="text/javascript">
function post_value(event){
if(event.target!=null)
{
var target=event.target.id;//This is the id of the element which triggered the event.
}
window.opener.document.getElementById("FromZip").value = document.getElementById("cityBox").value;
self.close();
}