2016-02-26 78 views
0

我有一個用於編程創建文本框的面板。當用戶點擊保存時,這些texboxes中的值需要連接,我需要一個字符來分隔每個值。爲此,我使用逗號(ASCII碼44)。因爲我使用的是逗號,所以我想阻止任何其他逗號輸入到我的文本框列表中的任何文本框中。這樣做最好的方法是什麼?防止在頁面上的所有文本框中輸入字符ASP.net

+0

好吧,您可能只需在用戶發送POST請求並將其與逗號連接後,從文本框值中刪除或替換所有逗號。如果你想添加額外的味道,你可以添加一個onkeyup函數到你的文本框中,如果添加的字符是逗號,則返回false。 – Shockwave

+2

我沒有很好的建議,除了提到當我們需要一個好的分離器時,我們使用一個管道|因爲這通常不是其他人想要輸入的內容。和這個鏈接到一個類似的問題http://stackoverflow.com/questions/8282266/how-to-prevent-invalid-characters-from-being-typed-into-input-fields – Nikki9696

+1

注意:你不控制客戶端,所以你不能*依賴你在UI中做的任何事情。即使UI不允許,服務器也應該檢查值。 –

回答

0

如果jQuery是你可以做

$(".no-comma-textbox").on("keydown", function(e){ 
    if (e.which == 188){ 
     e.preventDefault(); 
    } 
}); 

和所有的文本框應該有class="no-comma-textbox"的選項。

(注:當我測試了這188似乎是正確的值,以用於至少在Chrome逗號)

0

嘗試使用連接到documentoninput事件,String.prototype.slice()

document.oninput = function(e) { 
 
    if (e.target.value.slice(-1) === ",") { 
 
    e.target.value = e.target.value.slice(0, -1) 
 
    } 
 
} 
 

 
var input = document.createElement("input"); 
 
input.setAttribute("type", "text"); 
 
input.setAttribute("name", "input2"); 
 
document.body.appendChild(input);
<input type="text" name="input0" /> 
 
    <input type="text" name="input1" />

相關問題