سلام
چطوری می تونم تو #c بعد از پر شدن text box کرسر رو به طور خودکار به جهبه متن دیگه ببرم ، یا چه رویدادی تو جعبه متن هست که موقع فشار دادن یک کلید فراخوانی بشه؟
خواهش می کنم راهنماییم کنید!
سلام
چطوری می تونم تو #c بعد از پر شدن text box کرسر رو به طور خودکار به جهبه متن دیگه ببرم ، یا چه رویدادی تو جعبه متن هست که موقع فشار دادن یک کلید فراخوانی بشه؟
خواهش می کنم راهنماییم کنید!
توي وب نميشه مگر با جاوا اسكريپت ..
توي جاوا مثلاً ميشه اين : ...
textbox1.focus()
در اين باره جستجو كن .
مي شه بگيد از كجا مي فهميد تكس باكس پر شده كه به بعدي بره؟
اگه هنگام پرداخت آنلاین به فرم ورود شماره کارت شتاب و رمز اون دقت کنید میبینید که از این روش استفاده کرده اند.مي شه بگيد از كجا مي فهميد تكس باكس پر شده كه به بعدي بره؟
مثلاً شماره کارتها 16 رقمه که به چهار قسمت 4 تایی تقسیم شده. وقتی در TextBox اول چهار عدد وارد کنیم به صورت اتوماتیک به TextBox دوم وارد میشیم و ...
کافیه تعداد کاراکترهای ورودی رو با تعداد کاراکترهای تعیین شده برای TextBox مقایسه کنید ...
امیدم به دستان زیبای اوست . آنکه می آید . همان که نامش منجی ست ....
به راستی اگر غرق نبودیم چرا مارا به منجی ای نیازمند کرده اند؟ ... دنیا دریاست ....
دلنوشته های من
بله،می دونم با کدهای جاوا اسکریپت میشه ،مسئله اینه که دقیقا نمی دونم کجا ازشون استفاده کنم، درضمن گفتم شاید تو خود #C بشه این کارو انجام داد!
به هر حال ممنون از راهنماییتون
سلام دوباره
من تنها کدهای جاوا اسکریپت تونستم این مشکل رو حل کنم.
کد رو براتون می ذارم شاید لازمتون بشه!
این کد رو باید تو قسمت source صفحه بنویسید.
</head>
<body>
<formid="form1"runat="server">
<SCRIPTtype="text/javascript">
function SetFocus_t(txt) {
if (txt.id.indexOf("TextBox1") != -1 && txt.value.length == 5) {
document.getElementById("<% =TextBox3.ClientID%>").focus();
}
}
function SetFocus_t1(txt) {
if (txt.id.indexOf("TextBox3") != -1 && txt.value.length == 8) {
document.getElementById("<% =TextBox4.ClientID%>").focus();
}
}
</SCRIPT>
<asp:PanelID="Panel1"runat="server"Height="546px"
style="margin-bottom: 468px">
<asp:ScriptManagerID="ScriptManager1"runat="server">
</asp:ScriptManager>
<asp:UpdatePanelID="UpdatePanel1"runat="server">
<ContentTemplate>
<asp:TextBoxID="TextBox1"runat="server"onkeyup="SetFocus_t(this);"
tabIndex="2"Width="112px"></asp:TextBox>
<asp:TextBoxID="TextBox3"runat="server"onkeyup="SetFocus_t1(this);"
tabIndex="2"Width="112px"></asp:TextBox>
<asp:TextBoxID="TextBox4"runat="server"onkeyup="SetFocus_t2(this);"
tabIndex="2"Width="112px"></asp:TextBox>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Panel>
</form>
</body>
</html>
برای اینکه حین انتقال فوکوس از یک textbox به textbox بعدی صفحه refresh (از ابتدا لود)نشه textbox ها رو توی یه
ScriptManager
و
UpdatePanel
بذارید.
آخرین ویرایش به وسیله maryamcoo : شنبه 03 مهر 1389 در 15:11 عصر
البته کد زیر هم با زدن کلید enter کنترل رو به textbox بعدی انتقال می ده:
<htmlxmlns="http://www.w3.org/1999/xhtml">
<headid="Head2"runat="server">
<title>Shift Focus to the Next TextBox when user presses Enter</title>
<scripttype="text/javascript"
src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.min.js">
</script>
<scripttype="text/javascript">
$(function() {
$('input:text:first').focus();
var $inp = $('input:text');
$inp.bind('keydown', function(e) {
//var key = (e.keyCode ? e.keyCode : e.charCode);
var key = e.which;
if (key == 13) {
e.preventDefault();
var nxtIdx = $inp.index(this) + 1;
$(":input:text:eq(" + nxtIdx + ")").focus();
}
});
});
</script>
</head>
<body>
<formid="form2"runat="server">
<divclass="smallDiv">
<h2>Enter text and hit Enter to move to next text box</h2><br/>
<asp:TextBoxID="TextBox1"runat="server"/><br/>
<asp:TextBoxID="TextBox2"runat="server"/><br/>
<asp:TextBoxID="TextBox3"runat="server"/><br/>
<asp:TextBoxID="TextBox4"runat="server"/><br/>
</div>
</form>
</body>
</html>
در واقع این کد بدون اینکه صفحه رو تحویل سرور بدهند textbox ها رو پر می کنند.
خوش باشید.
میدونم زمان زیادی گذشته ولی ابن کدش هستش!!!
private void textBox1_TextChanged(object sender, EventArgs e)
{
if (textbox1.Text.length > 3) textBox2.Focus();
}
دوست گرامي اگه تو سايت بگردي جواب زياده
در اين پست يك روش ساده و عمومي بدون زحمت زياد رو با JQuery شرح دادم:
https://barnamenevis.org/showthread.php?335002-%D
Dim lstr As Variant
lstr = Len(Text1.Text)
If lstr = 3 Then
Command1.SetFocus
End If