2016-11-03 138 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