有没有办法告诉用jQuery点击表单提交按钮多少次?
我找到了一些答案here,但我不想使用全局变量。
有没有办法在jQuery中使用全局变量来实现这一点?
<form id="form">
<input type="button" id="Submit" name="Submit" value="Submit" />
</form>
JavaScript的:
var count = 0;
$(document).ready(function(){
$("form#Submit").submit(function(){
count++;
});
});
仅举例 - &gt;我想让用户点击按钮4次,但如果他点击次数超过4次,我会显示一些警告信息
答案 0 :(得分:3)
您可以将计数存储在按钮的data
:
$(document).ready(function () {
$("form#Submit").submit(function () {
var count = $(this).data("count") || 0;
$(this).data("count", ++count);
});
});
答案 1 :(得分:2)
所以这是一个帮助你的答案的编辑
$(document).ready(function () {
$("form#Submit").submit(function () {
var count = $(this).data("count") || 0;
if(count >= x)
{
//user clicked more than you wanted to so do something here
}
$(this).data("count", ++count);
});
});
答案 2 :(得分:1)
的JavaScript
function CountOnFormSubmitEvent(form_id, _callback_)
{
var that = this, count = 0, callback = _callback_;
var form = document.getElementById(form_id);
if(form === null) { return null; }
var reset = function(){
count = 0;
};
form.addEventListener("submit", function(evt){
callback(evt, ++count, reset);
}, false);
}
var counter = new CountOnFormSubmitEvent("myForm", function(event, count, reset_callback){
event.preventDefault();
if(count >= 4)
{
alert("Too many clicks !");
reset_callback();
}
});
我希望它会对你有帮助;)
答案 3 :(得分:0)
最初,将“ID”添加为“clicked-0”。现在按以下步骤操作:
$(document).ready(function(){
$("form#Submit").submit(function(){
var clicks = $(this).attr('id').replace('clicked-','');
clicks = clicks+1;
alert("No. of times clicked:"+clicks);
$(this).attr('id','clicked-'+clicks);
});
});
答案 4 :(得分:0)
$(document).ready(function(){
var count = 0;
$("form#Submit").submit(function(){
count++;
console.log(count); //for instance
});
});
count在domready上执行的匿名函数中定义。因此,它只能在匿名函数内部(以及其中的所有内容,例如提交函数)
修改强>
您可以测试它不在全球范围内:
$(document).ready(function(){
var count = 0;
$("form#Submit").submit(function(){
count++;
console.log(count); //for instance
console.log(window.count); //undefined
});
});