Jquery 用于在单击并再次返回后更改提交按钮文本的javascript

Jquery 用于在单击并再次返回后更改提交按钮文本的javascript,jquery,button,text,submit,Jquery,Button,Text,Submit,我正在使用重力表单,希望在单击后将其提交按钮文本更改为“处理…”。Gravity Forms告诉我在heading.php文件中使用一些自定义javascript来实现这一点。给出了以下脚本(http://stackoverflow.com/questions/1071012/using-jquery-to-change-input-button-text-back-after-a-few-seconds)这个链接为我指明了正确的方向,但我仍在学习,需要一些帮助!有人能帮我把这个代码分解一下吗

我正在使用重力表单,希望在单击后将其提交按钮文本更改为“处理…”。Gravity Forms告诉我在heading.php文件中使用一些自定义javascript来实现这一点。给出了以下脚本(http://stackoverflow.com/questions/1071012/using-jquery-to-change-input-button-text-back-after-a-few-seconds)这个链接为我指明了正确的方向,但我仍在学习,需要一些帮助!有人能帮我把这个代码分解一下吗

$("form.stock").submit(function()
{
    var $form = $(this);
    $.post( $form.attr('action'), { id: '123', stock: '1' } );
    var $submit = $form.find(":submit").attr('value','Saved!');
    window.setTimeout(function()
    {
        $submit.attr('value','Update') 
    }, 2000);
    return false;
});
form.stock指的是什么?和-id:'123'股票:'1'指的是什么

最后,这有什么作用<代码>变量$form=$(此)

我会感谢你的好意-我知道这些是我应该知道的一些基本问题

$(“form.stock”)//form.stock指的是什么
$("form.stock") // <-- this finds forms with class=stock
    .submit(function() { // <-- binds submit handler to them
    var $form = $(this);  //<-- this caches current form that's triggered event handler
       // ajax post to the current form's action attribute
       $.post($form.attr('action'), {
           id: '123',  // <-- these are the data passed back to your server
           stock: '1'
       });
       //  find's submit button and changes value to 'Saved!'
       var $submit = $form.find(":submit").attr('value', 'Saved!');
       window.setTimeout(function() {
           // after 2000ms update value back to 'Update'
           $submit.attr('value', 'Update')
       }, 2000);          
       return false; // <-- stops any event bubbling and default action of form submit
});​
带有
class=stock
作为jQuery选择器的
元素。如果您有:

<form class="stock">
该示例可能只是随意选取值
123
1
来说明该示例。您可能应该以某种方式从表单中获取这些值

$form=$(此)
这只是将方法调用的结果
$(This)
分配给一个变量

$
实际上是一个jQuery方法。本质上,
$(this)
调用参数
this
上的函数。调用函数相对比较昂贵,并且会占用资源。然而,使用一个变量并没有那么多。这样做更有效:

$form = $(this);
$form.one();
$form.two();
$form.three();
与此相反:

$(this).one();
$(this).two();
$(this).three();
前者只有4个方法调用,而后者有6个


不要混淆:
$form
只是一个变量名。它可以被称为
a表单
表单
x
,或任何其他有效名称。

太好了。非常感谢。如果我不需要传递任何数据-只想在提交按钮中更改文本-我可以去掉“$.post($form.attr('action')”、{id:'123'、/@user1877181,如果你不想传递任何数据..你可以只发送一个空的{}或删除它..所以
$.post($form.attr('action'))
。或者
$.post($form.attr('action'),{});
。虽然您应该在success函数中进行这些文本更改,但这是我在header.php中实现的代码:'$(“form.buttonext”)//第一次或第二次查看页面时,表单按钮具有类“buttonext”的css特征在页面视图的前几秒钟,然后更改回原始css。所以发生了一些事情!但是,没有文本更改。在我单击“提交”按钮后,什么也没有发生,只是在第一次访问页面时。现在它根本没有这样做。我需要在样式表中删除类吗?我可以/应该使用表单ID吗?如果我可以的话n将submit函数绑定到一个类-难道我不能简单地通过css应用“onclick”函数吗?@user1877181听起来你应该在这里接受答案并创建一个单独的问题。可以。谢谢你迄今为止的帮助!
$form = $(this);
$form.one();
$form.two();
$form.three();
$(this).one();
$(this).two();
$(this).three();