2010-11-17 14 views
20

मेरे पास एक एएसपीएक्स पृष्ठ है जो पोस्ट नहीं करना चाहिए। पृष्ठ पर दो टेक्स्ट बॉक्स, दो सूची बॉक्स और दो बटन हैं। यदि किसी भी बिंदु पर एंटर कुंजी दबाया जाता है तो पहला बटन फोकस दिया जाता है और "क्लिक किया गया" जिसके परिणामस्वरूप सूची बॉक्स में चयन का नुकसान होता है।एएसपी.Net पृष्ठ पोस्ट करने के कारण कुंजी दर्ज करें

मैं इसे कैसे अक्षम कर सकता हूं? एंटर बटन को कैप्चर करने और विधि को निष्पादित करने के तरीके पर कई ट्यूटोरियल हैं, लेकिन मैं ऊपर बताए गए फीचर को आसानी से अक्षम करने के तरीके पर "मुझे ढूंढने वाले पहले बटन को पकड़ने और इसे क्लिक करने" के बारे में बता सकता हूं।

+1

भी देखें http://stackoverflow.com/questions/1934223/disabling-default-button-or-enter -key-in-asp-et-c-sharp – Rory

उत्तर

29
  • आप फार्म या एक पैनल पर DefaultButton सेट कर सकते हैं। इस तरह आपका पूरा नियंत्रण होता है कि क्या होता है।
  • अपने बटन पर UseSubmitBehavior = "झूठा" सेट करें। यह एंटर पर "ऑटोपोस्टबैक" अक्षम करता है।

अगर मैं पोस्टबैक को पूरी तरह से एंटर पर रोकना चाहता हूं तो मैं दूसरा पसंद करूंगा।

+0

यदि यह एक छवि बटन है .. समाधान क्या है ?? – SRJ

+1

@ एसआरजे: आप इसके बजाय 'छवि' का उपयोग कर सकते हैं। या इस प्रश्न पर एक नज़र डालें जो उस मुद्दे को संबोधित करता है: http://stackoverflow.com/questions/1561400/how-to-disable-submit-behaviour-of-aspimagebutton –

+0

"" और बटन की विशेषता "UseSubmitBehavior" का उपयोग करना एक समान मुद्दे के लिए मेरा समाधान गलत था। यहां स्रोत का यह बिट है: https://pastebin.com/9hXJBrmk –

1

यह वेब एप्लिकेशन का डिफ़ॉल्ट व्यवहार है, तो आप सबमिट करने के लिए बस छोड़कर उस व्यवहार को ढूंढ और छुपा सकते हैं।

19

क्या आप jQuery का उपयोग कर रहे हैं?

यदि ऐसा है तो:

$(document).keypress(function(e) 
{ 
    if(e.keyCode === 13) 
    { 
     e.preventDefault(); 
     return false; 
    } 
}); 
+4

क्या टेक्स्ट टेक्स्ट में रिक्त रेखा डालने से एंटर कुंजी को रोक नहीं पाएगा? –

+0

यह उस टेक्स्टबॉक्स में फोकस होने पर एंटर प्रेस पर सबमिट व्यवहार को रोक देगा जहां एंटर प्रेस को जमा ('यानी उपयोगकर्ता नाम/पासवर्ड टेक्स्टबॉक्स') – sohaiby

+0

ग्रेट सॉल्यूशन का आह्वान करना चाहिए। @sohaiby @Tony_Henrich 'दस्तावेज़' को एक चयनकर्ता को प्रतिस्थापित करना आसान है जो वास्तव में उन इनपुट को लक्षित करता है जहां एंटर कुंजी दबाया जाना चाहिए। सादे जेएस का उपयोग करके jQuery को बाधित करने के लिए यह भी आसान है, हालांकि व्यर्थ है। – Roland

6

पोस्टबैक के कारण एंटर कुंजी अक्षम करने के लिए नीचे दिए गए कोड का उपयोग करें। कोड का यह टुकड़ा उपरोक्त सभी ब्राउज़रों 4.0 में एंटर कुंजी को अवरुद्ध कर देगा, सिवाय इसके कि जब टेक्स्टटेरा में या सबमिट बटन पर दर्ज किया जाता है।

<script language="JavaScript"> 
var nav = window.Event ? true : false; 
if (nav) { 
window.captureEvents(Event.KEYDOWN); 
window.onkeydown = NetscapeEventHandler_KeyDown; 
} else { 
document.onkeydown = MicrosoftEventHandler_KeyDown; 
} 

function NetscapeEventHandler_KeyDown(e) { 
if (e.which == 13 && e.target.type != 'textarea' && e.target.type != 'submit') { 
return false; 
} 
return true; 
} 

function MicrosoftEventHandler_KeyDown() { 
if (event.keyCode == 13 && event.srcElement.type != 'textarea' && 
event.srcElement.type!= 'submit') 
return false; 
return true; 
} 
</script> 
3

सिर्फ आप पर इस डाल ASP.Net पाठ बॉक्स नियंत्रण:

<asp:TextBox ID="TextBox1" runat="server" 
    onkeydown = "return (event.keyCode!=13);" > 
</asp:TextBox> 
संबंधित मुद्दे