2014-06-13 86 views
0

我已經編寫了一個聯繫表單,它根據在頁面頂部的(表單選擇選項)下拉列表中選擇的內容進行更改,使用某些javascript隱藏元素並進行更改'required'classes etc將javascript onclick參數傳遞給另一頁上的元素

這可以在頁面上正常工作。

在網站的導航中,我有一個下拉(引導程序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的最後一點很不整潔,但現在它的工作原理。

就像我說的,如果你已經在聯繫頁面上,導航腳本絕對完美。我怎樣才能從另一個頁面上工作?

+0

因此,當有人點擊「獲取報價」時,您希望它轉到聯繫頁面並默認選擇該選項?只需使用'GET'參數即可。 'Ask a question'等 – Halcyon

回答

0

嘗試在聯繫頁面的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> 

這將是先擦洗參數去防止JavaScript注入一個好主意。

相關問題