2013-03-23 97 views
0

我有一個註冊表單,它有一個隱藏的視圖,除非點擊鏈接。代碼如下:如何使用PHP觸發一個JS onClick事件

<a id="showCoupon" href="javascript:void(0);" onclick="toggleCoupon();"> 
    <?php _e('Have a coupon?','mysite'); ?> 
</a> 

如果設置了優惠券GET變量,我希望輸入框可見並預填充提供的數據。我添加PHP以檢查GET變量的存在這樣的:

if(isset($_GET['coupon'])) { 
    $coupon = $_GET['coupon']; 
} 
?> 

此外,輸入框已被修改爲使用的$coupon的值,如果設定。現在,我無法弄清楚如何觸發JS事件toggleCoupon();

我修改PHP函數來點擊這樣的鏈接:

if (isset($_GET['coupon'])) { 
    $coupon = $_GET['coupon']; 
    echo "<script>$('#showCoupon').trigger('click');</script>"; 
} 
?> 

到目前爲止,這是行不通的。我究竟做錯了什麼?

+0

您是否希望在用戶點擊鏈接時能夠執行一些JavaScript? – orb 2013-03-23 18:37:18

+0

不,我想用一個隱藏在默認視圖中的get變量預先填充文本字段,除非單擊鏈接。 – 2013-03-23 18:37:58

回答

2

你嘗試過:

<script> 
$(document).ready(function(){ 
$('#showCoupon').trigger('click'); 
}); 

</script> 

當文檔加載,jQuery將觸發點擊即使元素與showCoupon

+0

工作,謝謝!那麼,我錯過了$(document).ready?以爲我不需要它,因爲它是由PHP執行的,而不是頁面加載。 – 2013-03-23 18:35:32

+1

代碼沒有被PHP執行。 PHP是一種服務器端語言。如果遇到某些情況,您只需告訴頁面加載該腳本。但是,在頁面加載之前,該腳本的實際運行不會發生,在這種情況下,當DOM準備就緒時 – 2013-03-23 18:37:28

+0

明白了,這很有道理!我會盡快給你答覆。 – 2013-03-23 18:38:31

0

的ID不要用那樣的雜牌。那是糟糕的。

相反,在服務器端,如果提供了URL參數,則不要輸出首先隱藏該元素的代碼段(CSS類,「display:none;」,whatnot)。

如果元素被JavaScript隱藏,則傳遞一個值,指示初始狀態應該可見。