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