غیرفعال کردن کلید Enter در TextBox برای جلوگیری از ارسال در ASP.Net
با سلام یکی از ویژگیهای پیش فرضی که وجود دارد این است که هنگامی که در یک TextBox یاکنترل دیگر کرسر موس وجود دارد اگر در همان لحظه کلید Enter فشرده شود صفحه ارسال یا به عبارت دیگر یک postback اتفاق می افتد.
حالا چگونه می توان کلید در جعبه متن را غیرفعال کرد ؟
در اینجابا یک ترفند ساده این کار را انجام می دهیم
<asp:TextBox ID="TextBox1" runat="server"
onkeydown = "return (event.keyCode!=13);" >
</asp:TextBox>
همانطور که در بالا ذکر شد، یک شرط ساده دررویداد onkeydown نوشتیم .
(event.keyCode! = 13)؛
هنگامی که کلید اینتر فشرده میشود، با کد بالا صفحه دیگر ارسال نمشود یا postpack اتفاق نمی افتد..
توجه داشته باشید که Visual Studio در هنگام اضافه کردن رویداد onkeydown هشدار می دهد و آن را با رنگ سبز برجسته می کند .
این فقط یک هشدار است و می توان آن را نادیده گرفت اما برای کسانی که این اخطار را نمی خواهند می توانند این رویداد را در postback اضافه کنند.
C #
TextBox1.Attributes.Add("onkeydown", "return (event.keyCode!=13);");
VB.Net
TextBox1.Attributes.Add("onkeydown", "return (event.keyCode!=13);")
خط بالا،رویداد onkeydown را به جعبه متن اضافه می کند و اطمینان حاصل کنید که این خطوط را به بدنه ،TextBox هنگام اجرا اضافه می کند .
برای غیرفعال کردن ارسال فرم کلیدی وارد شده بر روی تمام کنترل ها، به روش زیر آن را به تگ بدنه اضافه کنید
<body onkeydown = "return (event.keyCode!=13)">
به این ترتیب نیازی نیست این رویداد را به تمام کنترل های صفحه اضافه کنید.