将javascript onclick参数传递给另一个页面上的元素
Passing javascript onclick parameter to an element on another page
我写了一个联系人表单,根据在页面顶部的(表单选择选项)下拉菜单中选择的内容改变自己,使用一些javascript来隐藏元素和更改'required'类等
这在页面上运行良好。
在网站的导航中,我有一个下拉菜单(bootstrap 3),模仿表单下拉菜单中的选项。这个想法是,访问者有两个选择来移动到他们想要的表单,要么从导航,要么从联系页面上的下拉菜单。
我有一些javascript检测导航选择和应该改变联系页面上的相关下拉菜单,这实际上是有效的,前提是你已经在联系页面。
我遇到的困难是,将值从主页传递到联系人页面。
下面的一些代码片段可能会有所帮助:
联系人页面表单下拉列表:
<div class="dropdown">
<label for="nature">Nature of Enquiry?</label>
<select tabindex=1 name="nature" id="nature">
<option value="0" selected>Ask a Question</option>
<option value="1">Get a Quote</option>
<option value="2">Submit Meter Reading</option>
<option value="3">Log a Service Call</option>
</select>
</div>
全局导航:
<li class="dropdown <?=($page_title == 'Contact') ? 'active' : ''?>">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">Contact <b class="caret"></b></a>
<ul role="menu" class="dropdown-menu choose">
<li><a href="./contact.php#Contact" id="0">Ask a Question</a></li>
<li><a href="./contact.php#Contact" id="1">Get a Quote</a></li>
<li><a href="./contact.php#Contact" id="2">Submit Meter Reading</a></li>
<li><a href="./contact.php#Contact" id="3">Log a Service Call</a></li>
</ul>
</li>
全局导航javascript捕获:
<script>
$('.choose a').click(function() {
$('#nature').val(this.id).change();
});
</script>
本地联系人页面javascript更改功能:
$('#nature').change(function()
{
var selectedValue = parseInt(jQuery(this).val());
switch(selectedValue){
case 0:
hide('error');
hide('clicks');
show('subject');
document.getElementById('subjectspan').style.display = 'inline';
document.getElementById('companyspan').style.display = 'none';
$('input#mono').removeClass('required');
$('input#company').removeClass('required');
$('textarea#message').addClass('required');
break;
case 1:
hide('error');
hide('clicks');
show('subject');
document.getElementById('subjectspan').style.display = 'inline';
document.getElementById('companyspan').style.display = 'none';
$('input#mono').removeClass('required');
$('input#company').removeClass('required');
$('textarea#message').addClass('required');
break;
case 2:
hide('error');
show('clicks');
hide('subject');
document.getElementById('companyspan').style.display = 'inline';
document.getElementById('meterspan').style.display = 'inline';
document.getElementById('subjectspan').style.display = 'none';
$('input#mono').addClass('required');
$('input#company').addClass('required');
$('textarea#message').removeClass('required');
break;
case 3:
hide('error');
hide('clicks');
show('subject');
document.getElementById('companyspan').style.display = 'inline';
document.getElementById('subjectspan').style.display = 'inline';
$('input#mono').removeClass('required');
$('input#company').addClass('required');
$('textarea#message').addClass('required');
break;
}
});
我知道javascript的最后一点是相当不整洁,但现在它工作。
就像我说的,导航脚本绝对完美的工作,如果你已经在联系页面。我怎么才能让它在另一个页面上工作呢?
尝试在联系人页面的URL中使用GET参数,然后基于该参数触发更改事件。
网址:
<li><a href="./contact.php?nature=0#Contact" id="0">Ask a Question</a></li>
联系人页面上的JavaScript:
<script>
$(function(){
$('#nature').val(<?php echo $_GET['nature']; ?>).change();
});
</script>
相关文章:
- 使用clickToggle并在单击另一个元素时关闭元素
- 按我自己的类克隆另一个元素的内容和顺序
- 如何通过HTML+CSS中的另一个元素Selector更改元素的属性值
- 使用svg和javascript将一个类的元素动画化为另一个类
- 将html元素插入到文本字符串中,以匹配另一个html字符串
- jQuery-将列表项的一个元素移动到同一项的另一个元素中+对我的列表中的每个项执行此操作
- jquery从另一个元素中移除移除
- DIV怎么能像Javascript中的另一个元素一样工作呢
- 使用数据属性将HTML数据复制到另一个元素
- 如何从另一个带下划线的数组中筛选带元素的数组
- 将鼠标悬停在Angular JS中的一个元素上,并将Class添加到另一个元素中
- 在类JavaScript选择的另一个元素中选择一个标记元素
- 只要存在,就用另一个元素替换一个元素
- 检查一个元素是否有一个类与另一个类总是返回true
- 初学者反应查询(如何删除一个元素并附加另一个元素)
- 将jquery ui窗口的父元素设置为另一个元素
- 如何激活下拉菜单:在一个元素上单击768px宽度下方,在另一个元素上将鼠标悬停在768px上方
- Pixijs将元素附加到另一个元素
- 将SVG元素拖动到另一个SVG元素上
- JavaScript:将输入范围行为链接到另一个元素