2016-11-03 100 views
1

我有一个textarea验证码,只有当textarea不为空时才会提交。下面的代码完美的工作,但我怎么能防止textarea内容连续多次按键盘上的返回提交?防止多次提交textarea数据

document.getElementById('input').addEventListener('keyup', function (e) { 
    var code = (e.keyCode ? e.keyCode : e.which); 
    if (code == 13 && $.trim($(this).val())) { 
     e.preventDefault(); 
     send(); 
    } 
}); 
+2

只是禁用textarea的 - 这是处理它的最简单方法。 – Archer

+0

怎么样?请给我看看 – user6731422

+0

@Archer可能会阻止表单数据中包含的字段 - 取决于OP如何发送表单 –

回答

0
window.formWasSubmitted = false; 

document.getElementById('input').addEventListener('keyup', function (e) { 
    var code = (e.keyCode ? e.keyCode : e.which); 
    if (code == 13 && $.trim($(this).val()) && !window.formWasSubmitted) { 
     e.preventDefault(); 
     window.formWasSubmitted = true; 
     send(); 
    } 
}); 
+0

那个时间没有工作.... – user6731422

+0

这是但它禁用文本区 – user6731422

+0

糟糕,我删除了使textarea为只读的语句 –

1

这是不是最好的解决办法,但你仍然可以操纵它按规定

var arr = []; 
 
document.getElementById('input').addEventListener('keyup', function (e) { 
 
    var code = (e.keyCode ? e.keyCode : e.which); 
 
    if (code == 13 && $.trim($(this).val())) { 
 
     e.preventDefault(); 
 
     send($(this).val()); 
 
     //console.log('here'); 
 
    } 
 
}); 
 

 
function send(data){ 
 
    var dataFrm = ''; 
 
    dataFrm += data; 
 
    arr.length = 0; 
 
    arr.push(dataFrm); 
 
    console.log(arr); 
 
} 
 

 
console.log(arr); // you can send this array through ajax
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script> 
 
<textarea name="notn" id="input"></textarea>

+0

输入数据并多次敲入输入键盘,看看会发生什么 – user6731422

+0

它重复发送这些数据 – user6731422

+0

如何将数据发送到任何页面它是ajax或其他? – EaBangalore