Quando si utilizza una casella di testo MultiLine (che genera un'Area di testo), la proprietà MaxLength non ha alcun effetto. Qual è la soluzione migliore? Mi piacerebbe avere funzionalità di base, con un minimo di brutto javascript, ecc. Basta impedire all'utente di inserire più di un numero massimo di caratteri.Come impostare la lunghezza massima per multilinea TextBox?
risposta
Se si desidera far sapere all'utente se ha superato la quantità di caratteri durante la scrittura, è possibile utilizzare una funzione javascript associata all'evento keypress. Questa funzione testerebbe la lunghezza dell'input e annullerebbe il rendering dei caratteri se fosse stata raggiunta la lunghezza massima.
Un'altra opzione è utilizzare il controllo RegularExpressionValidator
per convalidare l'input su submit.
A mio parere, la prima opzione è molto meglio.
Non sto aggiungendo alcun codice poiché google è pieno di esempi per tutti i gusti, questo è un compito molto comune.
Here si dispone di una ricerca di esempio che potrebbe aiutare.
Hey pukipuki si può fare come segue:
<asp:TextBox ID="txtValue" runat="server"TextMode="MultiLine" Rows="10"Columns="50"></asp:TextBox>
$(document).ready(function(){
var MaxLength = 250;
$('#txtValue').keypress(function(e)
{
if ($(this).val().length >= MaxLength)
{
e.preventDefault();
}
});});
Si può vedere di più in questa seguente link: http://jquerybyexample.blogspot.in/2010/10/set-max-length-for-aspnet-multiline.html
Mentre questo impedisce agli utenti di inserire più testo, impedisce loro di usare i tasti cancella o backspace (o qualsiasi altro tasto) nella casella, quindi possono ' In realtà, modifica il testo una volta raggiunto il limite. –
La tua risposta è più completa e utile di quella accettata. +1 per te –
non funziona per copia e incolla – fubo
Se si utilizza un bind modello a oggetti per quel testo è possibile utilizzare gli attributi DataAnnotations per impostare la lunghezza massima di quella proprietà. Sono basato su MVC, ma dovrebbe funzionare anche per ASP.NET!
In questo modo non si scherza con Javascript o non si imposta nulla nel markup.
Purtroppo WebForms non ha il supporto nativo di Annotazioni di dati come MVC. Ma ci sono alcuni accorgimenti, li controllo, grazie! perfetto esempio di risposta desiderata) +1 –
Se non si cura di browser meno recenti (vedi supported browsers here),
è possibile impostare MaxLength normalmente come questo
<asp:TextBox ID="txt1" runat="server" TextMode="MultiLine" MaxLength="100" />
e costringerlo a essere stampato al codice HTML
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
txt1.Attributes.Add("maxlength", txt1.MaxLength.ToString());
}
Prova questo ..
Dim script As String = ""
script = script + " <script type='text/javascript'> function CheckLength(obj) {"
script = script + " var object = document.getElementById(obj);"
script = script + " if (object.value.length > 5) {"
script = script + " object.focus();"
script = script + " object.value = object.value.substring(0, 5); "
script = script + " object.scrollTop = object.scrollHeight; "
script = script + " return false;"
script = script + " }"
script = script + " return true;"
script = script + " }</script>"
Dim b As New TextBox()
b.ID = "btnSomeButton"
b.TextMode = TextBoxMode.MultiLine
Mypanel.Controls.Add(b)
b.Attributes.Add("onkeyup", "return CheckLength('" & b.ClientID & "');")
Page.ClientScript.RegisterStartupScript(Page.GetType(), "key", script, False)
Ecco una soluzione cross browser:
<asp:TextBox TextMode="MultiLine" runat="server" ID="txtPurpose" Columns="50" Rows="2" onkeypress="return isokmaxlength(event,this,255);" ClientIDMode="static"></asp:TextBox>
Javascript:
function isokmaxlength(e,val,maxlengt) {
var charCode = (typeof e.which == "number") ? e.which : e.keyCode
if (!(charCode == 44 || charCode == 46 || charCode == 0 || charCode == 8 || (val.value.length < maxlengt))) {
return false;
}
}
Bisogna pensare al copia e incolla. Questo è un po 'complicato, lo disabilito semplicemente con Jquery. Ma puoi creare la tua funzione per effettuare una verifica più complessa. Ma nel mio caso, copia e incolla non è permesso.
Jquery per disabilitare copia e incolla:
jQuery(function ($) {
$("#txtPurpose").bind({
paste: function (e) {
e.preventDefault();
}
});
});
- 1. multilinea per WPF TextBox
- 2. problema multilinea WPF TextBox
- 3. Come impostare la lunghezza massima della colonna del datagridview
- 4. Impostare la lunghezza chr massima di un TextBlock in XAML
- 5. Impostare la lunghezza massima nel campo di testo in RoR
- 6. Come impostare la lunghezza massima per la casella combinata in WPF?
- 7. come impostare la lunghezza di una colonna in sospensione con lunghezza massima
- 8. Come aumentare la lunghezza massima dell'URL?
- 9. Telerik Kendo MVC TextBox Modalità multilinea
- 10. Lunghezza massima ConvertFrom-Json
- 11. Android EditText Lunghezza massima
- 12. lunghezza massima FormsAuthenticationTicket.UserData proprietà
- 13. Lunghezza massima del byte []?
- 14. Come impostare la memoria massima di Redis?
- 15. Lunghezza massima identificatore
- 16. Come impostare la larghezza massima di dijit.ToolTip?
- 17. Come impostare la larghezza massima di $ mdDialog?
- 18. Android: lunghezza massima dell'URL
- 19. Lunghezza massima per il cliente l'indirizzo IP
- 20. Come posso impostare la lunghezza massima consentita della linea Python a 120 in Syntastic for Vim?
- 21. Lunghezza massima per URL nel browser Chrome
- 22. come impostare la larghezza massima per un layout
- 23. Come impostare la lunghezza massima del lato triangolo nella triangolazione di Delaunay in R?
- 24. Come normalizzare la distanza di Levenshtein per la massima lunghezza di allineamento piuttosto che per la lunghezza della stringa?
- 25. WPF TextBox MaxLength - Esiste un modo per associare questo a Lunghezza massima convalida dei dati nel campo associato?
- 26. Come impostare la lunghezza massima di parola separata della stringa di proprietà C# EF
- 27. Perché la lunghezza massima predefinita per un ingresso 524288?
- 28. come impostare la lunghezza di una funzione
- 29. Impostazione della lunghezza massima predefinita per Grails String GORM?
- 30. Come creare un controllo TextBox multilinea di autoscatto in WinForms?
possibile duplicato di [Specificare maxlength per testo multilinea] (http: // StackOverflow.it/questions/1334286/specificando-maxlength-for-multiline-textbox) –