将原型脚本更改为jquery-one
我有此表格提交代码:将原型脚本更改为jquery-one,jquery,forms,prototypejs,Jquery,Forms,Prototypejs,我有此表格提交代码: Event.observe(window, 'load', init, false); function init() { Event.observe('addressForm', 'submit', storeAddress); } function storeAddress(e) { $('response').innerHTML = 'Adding email address...'; var pars = 'address=' + escape($F('
Event.observe(window, 'load', init, false);
function init() {
Event.observe('addressForm', 'submit', storeAddress);
}
function storeAddress(e) {
$('response').innerHTML = 'Adding email address...';
var pars = 'address=' + escape($F('address'));
var myAjax = new Ajax.Updater('response', 'ajaxServer.php', {method: 'get', parameters: pars});
Event.stop(e);
}
如何将其更改为使用jQuery
以下是html表单:
这是文档开头的php代码:
<?php
require_once("inc/storeAddress.php");
?>
大概是这样的:
$(function() {
$('#addressForm').submit(function() {
$('#response')
.html('Adding email address...')
.load('ajaxServer.php', { address: $('#address').val() }, function() {
$('#address').val('');
});
return false;
});
});
$(function() {
$('#addressForm').submit(function(e) {
$('#response').html('Adding email address...');
$.ajax({
url: 'ajaxServer.php',
type: 'GET',
data: {'address': $('#address').val() },
success: function(response) {
$('#response').html(response);
}
});
e.preventDefault();
return false;
});
});
注意:使用.load时,如果数据作为对象提供,则使用POST方法;否则,假定为GET。因此,如果要以GET的形式传递数据,请使用:
.load('ajaxServer.php', 'address='+$('#address').val());
或者直接从$_POST['address']获取提交的数据,在我看来这会更明智、更容易。类似这样的内容:
$(function() {
$('#addressForm').submit(function() {
$('#response')
.html('Adding email address...')
.load('ajaxServer.php', { address: $('#address').val() }, function() {
$('#address').val('');
});
return false;
});
});
$(function() {
$('#addressForm').submit(function(e) {
$('#response').html('Adding email address...');
$.ajax({
url: 'ajaxServer.php',
type: 'GET',
data: {'address': $('#address').val() },
success: function(response) {
$('#response').html(response);
}
});
e.preventDefault();
return false;
});
});
注意:使用.load时,如果数据作为对象提供,则使用POST方法;否则,假定为GET。因此,如果要以GET的形式传递数据,请使用:
.load('ajaxServer.php', 'address='+$('#address').val());
或者直接从$_POST['address']获取提交的数据,在我看来,这将更明智、更容易。让我们来看看
function init()
{
$('#addressForm').submit(storeAddress);
}
function storeAddress(e)
{
$('#response').html('Adding address...');
var params = 'address=' + $('#address').val();
$('#response').load('ajaxServer.php', params);
$.ajax({
url : 'index.php',
data : $('#addressForm').serialize(),
success : function(data)
{
alert('yay, form data sent!');
}
});
// Fix - stops page reload
return false;
}
$(document).ready(init);
试试看
function init()
{
$('#addressForm').submit(storeAddress);
}
function storeAddress(e)
{
$('#response').html('Adding address...');
var params = 'address=' + $('#address').val();
$('#response').load('ajaxServer.php', params);
$.ajax({
url : 'index.php',
data : $('#addressForm').serialize(),
success : function(data)
{
alert('yay, form data sent!');
}
});
// Fix - stops page reload
return false;
}
$(document).ready(init);
可以按如下方式转换脚本:
$(function() {
$('#addressForm').submit(function() {
$('#response')
.html('Adding email address...')
.load('ajaxServer.php', { address: $('#address').val() }, function() {
$('#address').val('');
});
return false;
});
});
$(function() {
$('#addressForm').submit(function(e) {
$('#response').html('Adding email address...');
$.ajax({
url: 'ajaxServer.php',
type: 'GET',
data: {'address': $('#address').val() },
success: function(response) {
$('#response').html(response);
}
});
e.preventDefault();
return false;
});
});
下面是一个等价物的概述:
对于innerHTML调用
用于通过ID查找
对于ajax调用
数据是传递的参数,设置配对地址=。。。
成功回调在请求完成时运行
将响应放在这里的id=response div中
可以按如下方式转换脚本:
$(function() {
$('#addressForm').submit(function() {
$('#response')
.html('Adding email address...')
.load('ajaxServer.php', { address: $('#address').val() }, function() {
$('#address').val('');
});
return false;
});
});
$(function() {
$('#addressForm').submit(function(e) {
$('#response').html('Adding email address...');
$.ajax({
url: 'ajaxServer.php',
type: 'GET',
data: {'address': $('#address').val() },
success: function(response) {
$('#response').html(response);
}
});
e.preventDefault();
return false;
});
});
下面是一个等价物的概述:
对于innerHTML调用
用于通过ID查找
对于ajax调用
数据是传递的参数,设置配对地址=。。。
成功回调在请求完成时运行
将响应放在这里的id=response div中
我尝试过页面不会重新加载,虽然数据已提交,但页面也正在重新加载。现在,它会以轴方式发送表单数据,并通过返回false阻止表单提交。哦,是的,它工作得很好。我将如何删除弹出的警报窗口。我不需要,这也是提交数据两次,电子邮件出现在一对提交。thanksTatu:第一个请求获取状态,第二个请求提交表单数据表单操作是index.php。我正在尝试页面不会重新加载,虽然数据已提交,但页面也正在重新加载。现在尝试一下,它以半轴方式发送表单数据,并通过返回false来阻止表单提交。哦,是的,它工作得很好。我将如何删除弹出的警报窗口。我不需要,这也是提交数据两次,电子邮件出现在一对提交。thanksTatu:第一个请求获取状态,第二个请求提交表单数据表单操作是index.php。虽然数据已提交,但页面正在重新加载aswell@steve-更新,这将防止现在发生默认提交。您最好观察表单上的提交事件,而不是提交按钮上的单击事件。看起来原型代码也是这么做的。@Nick Craver感谢您花时间研究这个问题,实际上我正在尝试提交表单而不进行页面刷新…更新后的版本仍然没有这样做。。有我失踪的地方吗?有件事你需要从我这边知道吗?让我来know@petersendidit你能告诉我要做什么吗…我的代码乱七八糟:我需要这一个尽快工作,,,谢谢,虽然数据已经提交,但页面正在重新加载aswell@steve-更新,这将防止现在发生默认提交。您最好观察表单上的提交事件,而不是提交按钮上的单击事件。看起来原型代码也是这么做的。@Nick Craver感谢您花时间研究这个问题,实际上我正在尝试提交表单而不进行页面刷新…更新后的版本仍然没有这样做。。有我失踪的地方吗?有件事你需要从我这边知道吗?让我来know@petersendidit你能告诉我要做什么吗…我的代码乱七八糟:我需要这一个很快工作,,,,谢谢这不是提交数据你能再帮我一个忙吗,我如何在提交请求后清除电子邮件字段。thanks@steve-更改。加载。。。行:。加载'ajaxServer.php',{address:$'address.val},函数{$'address.val;}@史蒂夫,正如尼克·克雷弗所说。为了清晰起见,我在示例中添加了它。谢谢,最后一个问题是…当我将我的ajaxServer.php移动到子目录/电子邮件并更改路径时。load'ajaxServer.php。。。。。到.load'email/ajaxServer.php…我得到错误。。。我需要更多更改吗?您好,这不是提交数据。您可以再做一次帮助吗?提交请求后,我如何清除电子邮件字段。thanks@steve-更改。加载。。。行:。加载'ajaxServer.php',{address:$'address.val},函数{$'address.val;}@史蒂夫,正如尼克·克雷弗所说。为了清晰起见,我在示例中添加了它。谢谢,最后一个问题是…当我将我的ajaxServer.php移动到子目录/电子邮件并更改路径时。load'ajaxServer.php。。。。。到.load'email/ajaxServer.php…我得到错误。。。我需要换更多的衣服吗?