2012-12-24 20 views
12

सबमिट करने के बजाय टेक्स्टरेरा में नया लाइन वर्ण जोड़ें मेरे पास टेक्स्ट क्षेत्र वाला एक फॉर्म है और एंटर कुंजी मारने से मेरा फॉर्म सबमिट हो जाता है। फ़ॉर्म सबमिट करने के बजाय मैं इसे एक नया लाइन कैरेक्टर जोड़ने के लिए कैसे बना सकता हूं।फॉर्म

+0

क्या आप एएसपीनेट के साथ काम करते हैं? – anmarti

+0

कोई भी वसंत एमवीसी के साथ काम नहीं कर रहा है, लेकिन यह एक साधारण HTML रूप है। – khizar

+0

अच्छी दोस्त शिफ्ट + डिफ़ॉल्ट काम के रूप में दर्ज करें जो आप चाहते हैं –

उत्तर

25
$('textarea').keypress(function(event) { 
    if (event.which == 13) { 
     event.preventDefault(); 
     var s = $(this).val(); 
     $(this).val(s+"\n"); 
    } 
});​ 

JSFiddle Demo

+1

अच्छी तरह से उत्तर देने वाले प्रत्येक मित्र के लिए अच्छी तरह से प्रश्न पढ़ना चाहिए;) –

+1

+1 ऐसा करने वाला एकमात्र व्यक्ति होने के लिए +1! – Archer

+1

अच्छी तरह से मैं इसे पहले जवाब देने के बारे में सोच रहा था लेकिन मुझे '/ n' या' \ n';) –

1

आप इस कोड की कोशिश कर सकते हैं:

$(document).ready(function() { 
    $("textarea").keydown(function(event){ 
    if(event.keyCode == 13) { 
     event.preventDefault(); 
     return false; 
    } 
    }); 
}); 
+0

यह इसे विंडो में अक्षम करता है, जिसका उद्देश्य इरादा नहीं हो सकता है। आपको इसे प्रश्न में इनपुट बॉक्स में गुंजाइश करना चाहिए। – ryadavilli

2

यह मदद करनी चाहिए

$('#myProblematicForm textarea').keypress(function(event) { 
    if (event.which == 13) { 
    event.preventDefault(); 
    this.value = this.value + "\n"; 
    } 
}); 

के लिए क्या इसके लायक है, मैं ओएस एक्स पर क्रोम का उपयोग कर रहा है और दर्ज एक \n सम्मिलित करता है मेरे लिए एक textarea में और डिफ़ॉल्ट रूप से फॉर्म जमा करें।

+0

दोस्त मैं भी Google क्रोम का उपयोग कर रहा हूं लेकिन विंडोज़ पर, यह डिफ़ॉल्ट रूप से लाइन ब्रेक को जोड़ता नहीं है! –

+0

@AspiringAqib, मैं तुम्हारा दोस्त नहीं हूँ, दोस्त: पी –

+0

ठीक है, मैं भी Google क्रोम का उपयोग कर रहा हूं लेकिन विंडोज़ पर, यह डिफ़ॉल्ट रूप से लाइन ब्रेक को जोड़ता नहीं है! –

1
$(document).ready(function() { 
    $('textarea').keydown(function(event){ 
    if (event.keyCode == 13) { 
     event.preventDefault(); 
     var s = $(this).val(); 
     $(this).val(s+"\n"); 
    } 
    }); 
}); 
1

पिछला जवाब पाठ क्षेत्र के वर्तमान मूल्य के बंटवारे को संभाल नहीं है और केवल एक नई लाइन चरित्र जोड़ देता है। निम्नलिखित घटना को फॉर्म पर बुलबुले से रोकता है और अभी भी 'एंटर' पर ठेठ टेक्स्टरेरा व्यवहार की अनुमति देता है।

$('textarea').keydown(function(event) { 
    if (event.keyCode === 13) { 
    event.stopPropagation(); 
    } 
}); 
1

इस के लिए मुझे

$(document).keypress(function(e) { 
if(e.which == 13) { 
    if(document.activeElement.tagName != "TEXTAREA") { 
     e.preventDefault(); 
    }; 
    } 
}) 
0
$(document).ready(function(){ 
$("#text").keypress(function(event) { 
    if (event.which == 13) { 
     var s = $(this).val(); 
     $(this).val(s+"\n"); //\t for tab 
    } 
});  
}); 

इस jQuery कोड कि मैं ऊपर दे दिया है द्वारा किया जा सकता काम किया। ध्यान दें कि तैयार फ़ंक्शन का उपयोग आवश्यक है जब आप HTML इनपुट फ़ील्ड के कोड से पहले स्क्रिप्ट लिखते हैं, और इनपुट फ़ील्ड कोड के बाद इसे लिखते समय जरूरी नहीं है। अगर यह काम नहीं कर रहा है \ एन यह काम करेगा।

+0

हालांकि यह कोड प्रश्न का उत्तर दे सकता है, इस बारे में अतिरिक्त संदर्भ प्रदान करता है कि यह कैसे और/या समस्या का समाधान क्यों करता है, इसका उत्तर उत्तर के दीर्घकालिक मूल्य में सुधार होगा। गुणवत्ता उत्तर प्रदान करने के लिए कृपया इसे [कैसे-जवाब दें] (http://stackoverflow.com/help/how-to-answer) पढ़ें। – thewaywewere

+0

@thewaywewere के सुझावों के लिए धन्यवाद, मेरा संपादित उत्तर देखें, उम्मीद है कि यह आपकी मदद कर सकता है। –