簡體   English   中英

jquery變量從一個函數到另一個函數?

[英]jquery variable from one function to another function?

我有2個函數,我希望將一個名為“url”的變量傳遞給第二個函數。

第一個函數從“url”的值中獲取一個href屬性,因為它從我的數據庫中吐出,並且是一個打開模態窗口的觸發器。

 <a class=\"trigger3\" url=\"".$url."\" href=\"#\">

該功能看起來像這樣。

 <script type="text/javascript">
 $(document).ready(function(){
    $(".trigger3").click(function(){
            var url=$(this).attr("url");
            $(".panel3").toggle("fast");
            $(this).toggleClass("active");
            return false;
    });
 });
 </script>

我已經確認變量在那里。

第二個函數應該捕獲此變量並將其與提交表單數據一起返回。

這是第二個功能。

 <script type="text/javascript">
 function submitForm2() {
    $.ajax({type:'POST', url: 'flagadd.php', data:$('#flagProxy').serialize()+'&url=url', success: function(response) {
    $('#flagProxy').find('.form_result2').html(response);
}});

return false;
 } 
 </script>


 <div class="panel3">
 <form id="flagProxy" onsubmit="return submitForm2();">
 <textarea style="resize:none" name="flag" cols="25" rows="5"></textarea>
 <input type="hidden" name="url" />
 <br>
 <input type="submit" name="submit" value="Submit" />
 <input type="button" name="cancel" value="Cancel" class="trigger3" />
 <div class="form_result2"></div>
 </form>
 </div>

我一直試圖解決這個問題幾天,但我不知道該怎么辦。 我想要么在一個函數中調用一個函數,要么以某種方式將變量全局化為兩個函數。

感謝您提供的任何幫助,非常感謝,我可以使用一個良好的夜晚睡覺:)

您可以從另一個函數調用一個函數作為參數傳遞值,但如果兩個函數都是事件觸發的,那么我將使用全局變量來保存該值:

 <script type="text/javascript">

 var global;

 $(document).ready(function(){
    $(".trigger3").click(function(){
            var url=$(this).attr("url");
            $(".panel3").toggle("fast");
            $(this).toggleClass("active");
            global = 3;
            return false;
    });
 });

function submitForm2() {
    console.log(global); // 3
    $.ajax({type:'POST', url: 'flagadd.php', data:$('#flagProxy').serialize()+'&url=url', success: function(response) {
    $('#flagProxy').find('.form_result2').html(response);
}});

return false;
}

 </script>

不要只是組成HTML屬性名稱。 如果要存儲數據,請使用HTML5 data-*屬性 - 例如, data-url="..."

如果您只想將其作為表單的一部分發送,為什么不在表單中隱藏字段並更新它?

<input type="hidden" name="url">

+

var url = $(this).data('url');  // jquery understands HTML5 data-* attributes too
$('#flagProxy input[name=url]').val(url);

更好的是,只需使用值內的表單內的按鈕,而不是鏈接。

<input type="submit" name="url" value="...">

(我使用<button> ,但舊的IE實際上是愚蠢的,並沒有正確處理發送其表單值。)

暫無
暫無

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

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