PDA

View Full Version : انتقال Focus به تکست باکس بعدی به صورت خودکار



maryamcoo
سه شنبه 30 شهریور 1389, 09:35 صبح
سلام
چطوری می تونم تو #c بعد از پر شدن text box کرسر رو به طور خودکار به جهبه متن دیگه ببرم ، یا چه رویدادی تو جعبه متن هست که موقع فشار دادن یک کلید فراخوانی بشه؟
خواهش می کنم راهنماییم کنید!

milade
سه شنبه 30 شهریور 1389, 10:53 صبح
توي وب نميشه مگر با جاوا اسكريپت ..
توي جاوا مثلاً ميشه اين : ...

textbox1.focus()
در اين باره جستجو كن .

pedram_ns
سه شنبه 30 شهریور 1389, 13:04 عصر
مي شه بگيد از كجا مي فهميد تكس باكس پر شده كه به بعدي بره؟

salehbagheri
سه شنبه 30 شهریور 1389, 13:12 عصر
مي شه بگيد از كجا مي فهميد تكس باكس پر شده كه به بعدي بره؟

اگه هنگام پرداخت آنلاین به فرم ورود شماره کارت شتاب و رمز اون دقت کنید میبینید که از این روش استفاده کرده اند.

مثلاً شماره کارتها 16 رقمه که به چهار قسمت 4 تایی تقسیم شده. وقتی در TextBox اول چهار عدد وارد کنیم به صورت اتوماتیک به TextBox دوم وارد میشیم و ...

کافیه تعداد کاراکترهای ورودی رو با تعداد کاراکترهای تعیین شده برای TextBox مقایسه کنید ...

maryamcoo
سه شنبه 30 شهریور 1389, 15:02 عصر
بله،می دونم با کدهای جاوا اسکریپت میشه ،مسئله اینه که دقیقا نمی دونم کجا ازشون استفاده کنم، درضمن گفتم شاید تو خود #C بشه این کارو انجام داد!
به هر حال ممنون از راهنماییتون

maryamcoo
شنبه 03 مهر 1389, 14:56 عصر
سلام دوباره
من تنها کدهای جاوا اسکریپت تونستم این مشکل رو حل کنم.
کد رو براتون می ذارم شاید لازمتون بشه!
این کد رو باید تو قسمت 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:06 عصر
البته کد زیر هم با زدن کلید enter کنترل رو به textbox بعدی انتقال می ده:
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head2" runat="server">
<title>Shift Focus to the Next TextBox when user presses Enter</title>
<script type="text/javascript"
src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.min.js">
</script>

<script type="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>
<form id="form2" runat="server">
<div class="smallDiv">
<h2>Enter text and hit Enter to move to next text box</h2><br />
<asp:TextBox ID="TextBox1" runat="server" /><br />
<asp:TextBox ID="TextBox2" runat="server" /><br />
<asp:TextBox ID="TextBox3" runat="server" /><br />
<asp:TextBox ID="TextBox4" runat="server" /><br />
</div>
</form>
</body>
</html>
در واقع این کد بدون اینکه صفحه رو تحویل سرور بدهند textbox ها رو پر می کنند.

خوش باشید.

mahdi_1986
جمعه 08 اردیبهشت 1391, 21:35 عصر
می‌دونم زمان زیادی گذشته ولی ابن کدش هستش!!!


private void textBox1_TextChanged(object sender, EventArgs e)
{
if (textbox1.Text.length > 3) textBox2.Focus();
}

d_derakhshani
جمعه 08 اردیبهشت 1391, 23:31 عصر
دوست گرامي اگه تو سايت بگردي جواب زياده
در اين پست يك روش ساده و عمومي بدون زحمت زياد رو با JQuery شرح دادم:
http://barnamenevis.org/showthread.php?335002-%D (http://barnamenevis.org/showthread.php?335002-%D8%A7%D9%86%D8%AA%D9%82%D8%A7%D9%84-%DA%A9%D8%B1%D8%B3%D8%B1-%D8%AF%D8%B1-textbox&highlight=%D8%A7%D9%86%D8%AA%D9%82%D8%A7%D9%84+Tex tbox)

hosseinmolahosseiny
جمعه 21 اسفند 1394, 16:51 عصر
Dim lstr As Variant
lstr = Len(Text1.Text)
If lstr = 3 Then
Command1.SetFocus
End If