2013-10-30 49 views
0

我在gridview裏面有文本框。我的要求是將文本框的輸入僅限制爲「X」或「O」。但我在JavaScript中很新。任何人都可以請告訴我我該如何實現這一目標。我想提一下,我已經使用Vb.Net和Asp.Net來開發這個系統。 在此先感謝您的幫助。如何使用Javascript驗證器驗證文本框?

+1

如果輸入只會是2個可能值1,爲什麼不使用一個複選框呢? – ElGavilan

+0

查看http://msdn.microsoft.com/en-us/library/debza5t0(v=vs.100).aspx –

+1

+1給@ ElGavilan的想法,或者如果你想更透明些什麼用戶正在選擇,使用下拉菜單。在這裏不適合使用文本框。 – PlantTheIdea

回答

1

這裏有一個jQuery的解決方案,如果你需要,而不是使用複選框的輸入:

$(document).ready(function() { 
    jQuery('#restricted-input').on('keydown', function(event) { 
     // reset input 
     var input = jQuery(this).val(''); 

     // code 88 = x 
     // code 79 = o 
     // code 8 = Backspace 
     if (event.keyCode == 88 || event.keyCode == 79 || event.keyCode == 8) { 
      // let input happen     
     } else { 
      event.preventDefault(); 
     } 
    }); 
}); 
+0

非常感謝您的答案。 – barsan

0

謝謝大家對你有益的建議我的問題。但是,這就是我剛剛解決它的方式。

這是我在GridView裏面文本框:

<asp:TextBox ID="txtAttend" runat="server" BackColor="Control" MaxLength="1" 
EnableViewState="true" Width="15px" onkeyup="ValidateText(this);"></asp:TextBox> 

在這裏,我調用ValidateText(本)javascript函數。

這裏是功能:

<script type="text/javascript" language="javascript"> 
function ValidateText(i) 
{ 
    if(i.value != "X" || i.value != "O") 
    { 
     alert("Please Enter 'X' for Present or 'O' for Absent"); 
    } 
} 
</script> 

我得到了暗示從這個鏈接此解決方案:TextBox inside GridView validation

感謝。

1

你好,如果你喜歡這個解決方案

 function val(e) { 
     tecla = (document.all) ? e.keyCode : e.which; 
     if (tecla == 8) return true; 
     patron = /[O-Xox]/; 
     te = String.fromCharCode(tecla); 
     return patron.test(te); 
     } 
+0

非常感謝你給我的答案。我會試一試。 – barsan

0

請參閱下面的代碼,可以幫助您只允許兩個字符輸入。此代碼將限制其他擊鍵並僅允許「X」和「O」。 對於演示,請參閱:http://jsfiddle.net/BhaveshKachhadiya/uNfP2/7/

function validate(evt) 
{ 
    evt = (evt) ? evt : window.event; 
    var charCode = (evt.which) ? evt.which : evt.keyCode; 
    // alert(charCode); 
    if (charCode == 120 || charCode== 88 || charCode==111 || charCode==79 || charCode == 8) { 
     return true; 
    } 
    else 
    { 
     alert("Please Enter 'X' for Present or 'O' for Absent"); 
     return false;  
    } 
}