防止多次提交textarea数据

时间:2016-11-03 16:19:28

标签: javascript jquery html

我有一个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 个答案:

答案 0 :(得分: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>

答案 1 :(得分: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();
    }
});