Re: [問題] .getForm().submit()?

看板Ajax作者 (還在想)時間14年前 (2009/12/24 05:04), 編輯推噓4(4010)
留言14則, 4人參與, 最新討論串3/3 (看更多)
※ 引述《skywillnosky (Alfred)》之銘言: : 我想順便問一下 : AJAX 可以跟Jquery共用嗎? 問題這樣問,jquery會哭的 就像買一台iphone問它支不支援打電話一樣 prototype是一個程式庫 jQuery是一個程式庫 extjs也是一個程式庫 我其他兩個沒碰過,就只碰過jQuery 只是能肯定告訴妳 沒有任何程式庫會"不相容ajax" : 要如何擷取AJAX的ITEM的值 : 放到Jquery? : 這是改過的程式... : <head> : <script type="text/javascript" src="adapter/ext/ext-base.js"></script> : <script type="text/javascript" src="ext-all.js"></script> : <script type="text/javascript" src="jquery-1.3.2.js"></script> : <script type="text/javascript" > 暫且在這邊做個記號吧 : Ext.onReady(function(){ : Ext.QuickTips.init(); : Ext.form.Field.prototype.msgTarget = 'side'; : Ext.form.Field.prototype.align = 'center'; : var bd = Ext.getBody(); : var create_form = new Ext.FormPanel({ : labelWidth: 75, : frame:true, : title: '填寫會員資料', : url: '_register.php', : bodyStyle:'padding:5px 5px 0', : width: 400, : defaults: {width: 230}, : defaultType: 'textfield', : items: [{ : fieldLabel: '帳號', : name: 'account', : allowBlank:false : }, : ... : { : fieldLabel: '手機號碼', : name: 'cellphone', : inputType : "password", : allowBlank:false : } : ], : buttons: : [ : { : text: '送出', : handler: senddata : }, : { : text: '重設', : handler: function(){ : create_form.getForm().reset(); : } : } : ] : }); : function senddata() { : if (create_form.getForm().isValid()) : { : handler: search_contents() : } else { : Ext.MessageBox.alert('狀態', '不能為空的'); : } : } : create_form.render(document.body); : }); 這邊也做個記號 : function search_contents(){ : $(document).ready(function() { : $.post('register.php',{ : a: $("#account").val(), : ... : c: $("#cellphone").val()}, : function(txt){ $('div.result').html(txt);}); : }); : } : </script> : </head> : <body> : <div id="create_form" ></div> : <?php : echo '$_POST[pass] = '.$_POST['pass'].'<br>'; : if(strcmp($_POST['pass'], $_POST['pass_again']) == 0 && $_POST['pass'] != : NULL) : { : $a = $_POST['account']; : $p = $_POST['pass']; : $pg = $_POST['pass_again']; : $n = $_POST['name']; : $i = $_POST['id']; : $d = $_POST['date']; : $c = $_POST['cellphone']; : ...... : echo '您的會員編號:'.$in.'<br>'; : } : else if(strcmp($_POST['pass'], $_POST['pass_again']) != 0 && $_POST['pass'] : != NULL) : { : echo '帳號輸入不一致<br>'; : } : ?> : <br/>輸入之文章: : <div class="contents"></div> : <br/>取代後之文章:<div class="result" id="result"></div><br/> : <div class="contents"></div> : <br/>取代後之文章:<div class="result" id="result"></div><br/> : //********************************************************************// : 我這樣寫跑起來沒反應耶 : 是因為ajax 跟 jquery不相容嗎? 我是不懂extjs的寫法啦 也沒去看完整個程式 就我稍微看一下所看到的 一、 程式有兩個開始點,一個是extjs的ready方法,另一個則是jquery的ready方法 如果這是"文件就緒時馬上執行的程式片段" 同樣使用同一個程式庫時或許就算了 (jquery如果找到兩份ready的程式碼,也同樣能夠完成裡面的全部內容) 問題是你用不同的程式庫同時寫了兩次 而我不認為這是妥當或必要的做法 就算出了問題我也不覺得奇怪 二、 第二次的ready方法(屬於jQuery的那一個)被包在一個function內等著被呼叫 這或許讓兩個ready方法不會有賽跑的情況 但問題接著冒出來 ready方法是一個事件的方法,發生在某物準備完成時(這邊指網頁內文) 而$(document).ready(fn) 所做的只是事先連結裡面的fn程式 以便在完成時觸發fn 當妳呼叫那個包著ready方法的function時 它只幫妳把fn連結到網頁完成的事件裡 "並不會"去執行fn 但是它被連結後,整個網頁完成已經是過去式了 就像送人家一張日期是三年前的機票,還問人家怎麼都不去搭 太 遲 了 ! 所以ready裡面的內容一行都不會執行 BUT! 或許妳呼叫他時,還是有妳看不到的動作 那就是 一直繫結程式到一個不會再發生的事件上 妳呼叫一次他就綁定一次 只是反正不會執行,所以沒感覺 我有看到的就這兩個吧 其他的我要不就不熟,要不就不確定 這種程式庫的其中一個方法妳不能用 妳應該先想到是不是自己寫錯了 而不是質疑人家不支援他自己做的方法吧 如果不支援,人家敢在官網上寫出post方法給妳看嗎XD -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.168.234.200

12/24 05:21, , 1F
對了,拙見或許有各種錯誤,請多指教,或許也能學到更多
12/24 05:21, 1F

12/24 08:31, , 2F
講的很好呀...不推不行
12/24 08:31, 2F

12/24 08:32, , 3F
只是我也是新手...可能還要在加油:D
12/24 08:32, 3F

12/24 08:32, , 4F
話說原PO還真早起= =
12/24 08:32, 4F

12/24 08:37, , 5F
那我要怎麼改才能擷取到item的值勒 還有之前有位大大
12/24 08:37, 5F

12/24 08:39, , 6F
會傳一整個頁面用傳統的form.submit也不是很了解
12/24 08:39, 6F

12/24 10:50, , 7F
jQuery 和 ExtJS 的搭配方式也有問題... 如果要用 jQuery
12/24 10:50, 7F

12/24 10:50, , 8F
作為 ExtJS 底層 ajax 機制的話要使用對應的 adapter 轉接,
12/24 10:50, 8F

12/24 10:58, , 9F
目前的寫法會變成兩個獨立 framework 並可能相互干擾...
12/24 10:58, 9F

12/25 05:22, , 10F
所以正常應該都是jquery作為底層比較恰當?
12/25 05:22, 10F

12/25 12:22, , 11F
我以為這是需求確認的問題...
12/25 12:22, 11F

12/25 19:23, , 12F
...什~麼意思?= =
12/25 19:23, 12F

12/26 00:11, , 13F
就是說你應該要自己判斷你比較能掌握哪個lib , 想要挑選哪個
12/26 00:11, 13F

12/26 00:12, , 14F
工具來用 , 沒有一定用 jQuery 比較恰當 一切看你自己需求
12/26 00:12, 14F
文章代碼(AID): #1BCeNXu6 (Ajax)
文章代碼(AID): #1BCeNXu6 (Ajax)