作者Peruheru (还在想)
看板Ajax
标题Re: [问题] .getForm().submit()?
时间Thu Dec 24 05:04:30 2009
※ 引述《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
1F:→ Peruheru:对了,拙见或许有各种错误,请多指教,或许也能学到更多 12/24 05:21
2F:推 skywillnosky:讲的很好呀...不推不行 12/24 08:31
3F:→ skywillnosky:只是我也是新手...可能还要在加油:D 12/24 08:32
4F:→ skywillnosky:话说原PO还真早起= = 12/24 08:32
5F:推 skywillnosky:那我要怎麽改才能撷取到item的值勒 还有之前有位大大 12/24 08:37
6F:→ skywillnosky:会传一整个页面用传统的form.submit也不是很了解 12/24 08:39
7F:→ adahsu:jQuery 和 ExtJS 的搭配方式也有问题... 如果要用 jQuery 12/24 10:50
8F:→ adahsu:作为 ExtJS 底层 ajax 机制的话要使用对应的 adapter 转接, 12/24 10:50
9F:→ adahsu:目前的写法会变成两个独立 framework 并可能相互干扰... 12/24 10:58
10F:推 skywillnosky:所以正常应该都是jquery作为底层比较恰当? 12/25 05:22
11F:→ adahsu:我以为这是需求确认的问题... 12/25 12:22
12F:推 skywillnosky:...什~麽意思?= = 12/25 19:23
13F:→ TonyQ:就是说你应该要自己判断你比较能掌握哪个lib , 想要挑选哪个 12/26 00:11
14F:→ TonyQ:工具来用 , 没有一定用 jQuery 比较恰当 一切看你自己需求 12/26 00:12