簡體   English   中英

簡單的jQuery事件處理程序

[英]simple jquery event handler

目前在jquery上存在一些實際問題。 到目前為止,基本上我是。 表單提交后,表單就會被提交,並彈出帶有相關信息的灰色框。

我需要做的是刷新整個頁面,然后顯示灰色框。

我有以下代碼

 $("#ex1Act").submit(function() {
        //$('#example1').load('index.php', function()                                 
        $("#example1").gbxShow();
        return true;
      });

提交表單后,被注釋掉的行再次加載頁面,其他代碼使灰色框彈出。

是他們曾經說過的一種方式:

$('#example1').load('index.php', function() 

已經被引誘這樣做:

 $("#example1").gbxShow();

希望這是有道理的。

這是不可能的。

提交表單后,在提交表單的頁面上運行的JavaScript完全消失了; 它不會影響表單返回的頁面。

相反,您應該以寫$("#example1").gbxShow();的形式放置服務器端代碼$("#example1").gbxShow(); 如果已提交表單,則在單獨的<script>塊中。

為什么不正常地提交表單(即不使用JavaScript)並在結果頁面中添加一個變量,以表示需要顯示灰色框呢? 像這樣:

<?php if(isset($_POST['submit'])): ?>
    <script type="text/javascript">
        var showGreyBox = true;
    </script>
<?php endif; ?>

...

<script type="text/javascript">
    $(function(){
        if(showGreyBox !== undefined){
            // execute code to show the grey box
        }
    });
</script>

這樣的事吧?

您遇到的問題是該網頁是“無狀態的”。 這意味着您將無法使用JavaScript,刷新頁面並繼續使用JavaScript。 刷新頁面時,您將丟失當前狀態,並且頁面將從頭開始。

您需要重新設計您的設計,以記住頁面生命周期(即所有JavaScript在導航上永久停止)。

一種解決方案可能是使用jQuery AJAX表單插件,該插件會將表單提交到服務器並返回提交結果,這將避免破壞頁面生命周期。 然后,您可以根據需要顯示該框。

執行此操作的標准方法是讓服務器在對表單發布的響應中返回灰框內容。

您可以在jquery中通過將頁面和灰色框放入單獨的iFrame中來做到這一點,以便從頁面刷新中安全

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM