আমার পাশে একটি সহজ এইচটিএমএল টেক্সারিয়া আছে। এই মুহুর্তে আপনি যদি এটিতে ট্যাব ক্লিক করেন তবে এটি পরবর্তী ক্ষেত্রে যায়। আমি পরিবর্তে কয়েকটি স্পেসে ট্যাব বোতামটি ইন্ডেন্ট করতে চাই। কিভাবে আমি এটি করতে পারব? ধন্যবাদ।
আমার পাশে একটি সহজ এইচটিএমএল টেক্সারিয়া আছে। এই মুহুর্তে আপনি যদি এটিতে ট্যাব ক্লিক করেন তবে এটি পরবর্তী ক্ষেত্রে যায়। আমি পরিবর্তে কয়েকটি স্পেসে ট্যাব বোতামটি ইন্ডেন্ট করতে চাই। কিভাবে আমি এটি করতে পারব? ধন্যবাদ।
উত্তর:
অনুরূপ প্রশ্নের অন্যান্য উত্তরগুলি থেকে প্রচুর orrowণ নেওয়া (নীচে পোস্ট করা) ...
$(document).delegate('#textbox', 'keydown', function(e) {
var keyCode = e.keyCode || e.which;
if (keyCode == 9) {
e.preventDefault();
var start = this.selectionStart;
var end = this.selectionEnd;
// set textarea value to: text before caret + tab + text after caret
$(this).val($(this).val().substring(0, start)
+ "\t"
+ $(this).val().substring(end));
// put caret at right position again
this.selectionStart =
this.selectionEnd = start + 1;
}
});
jQuery: একটি টেক্সটবক্সের মধ্যে কীভাবে টিএবি কী টিপস ক্যাপচার করবেন
var textareas = document.getElementsByTagName('textarea');
var count = textareas.length;
for(var i=0;i<count;i++){
textareas[i].onkeydown = function(e){
if(e.keyCode==9 || e.which==9){
e.preventDefault();
var s = this.selectionStart;
this.value = this.value.substring(0,this.selectionStart) + "\t" + this.value.substring(this.selectionEnd);
this.selectionEnd = s+1;
}
}
}
এই সমাধানটির জন্য jQuery প্রয়োজন হয় না এবং কোনও পৃষ্ঠার সমস্ত টেক্সারিগুলিতে ট্যাব কার্যকারিতা সক্ষম করে।
this.selectionEnd = s+1;
সাথে প্রতিস্থাপন করুন this.selectionEnd = s + "\t".length;
। কোনও ভেরিয়েবল বা ফাংশন প্যারামিটার ব্যবহার করা এবং সেখানে ইনডেন্টেশন চর (গুলি) সঞ্চয় করা পরিষ্কার হবে। তবে আপনি কী এখন প্রতিস্থাপন করবেন তা জানেন: +1
ক্যারেটটি কতটা সরানো হয়েছে তা নির্ধারণ করে।
KeyboardEvent.keyCode
এবং KeyboardEvent.which
অবচিত সম্পত্তি are KeyboardEvent.key
পরিবর্তে ব্যবহার করুন।
অন্যরা যেমন লিখেছেন, আপনি ইভেন্টটি ক্যাপচার করতে জাভাস্ক্রিপ্ট ব্যবহার করতে পারেন, ডিফল্ট ক্রিয়াটি আটকাতে পারেন (যাতে কার্সার ফোকাসটি পরিবর্তন না করে) এবং একটি ট্যাব অক্ষর সন্নিবেশ করতে পারে।
কিন্তু , ডিফল্ট আচরণটি অক্ষম করা মাউস ব্যবহার না করে পাঠ্য অঞ্চল থেকে ফোকাস সরিয়ে নেওয়া অসম্ভব করে তোলে। অন্ধ ব্যবহারকারীরা কীবোর্ড এবং অন্য কিছু ব্যবহার করে ওয়েব পৃষ্ঠাগুলির সাথে ইন্টারঅ্যাক্ট করে - তারা মাউস পয়েন্টারটিকে এটির সাথে দরকারী কিছু করতে দেখতে পারে না, তাই এটি কীবোর্ড বা কিছুই নয়। ট্যাব কীটি নথিটি এবং বিশেষত ফর্মগুলি নেভিগেট করার প্রাথমিক উপায়। ট্যাব কী-এর ডিফল্ট আচরণকে ওভাররাইড করা অন্ধ ব্যবহারকারীদের ফোকাসটিকে পরবর্তী ফর্মের উপাদানটিতে সরিয়ে নেওয়া অসম্ভব করে তুলবে।
সুতরাং, যদি আপনি কোনও বিস্তৃত দর্শকের জন্য কোনও ওয়েবসাইট লিখছেন তবে আমি বাধ্যতামূলক কারণ ছাড়াই এটি করার বিরুদ্ধে সুপারিশ করব এবং অন্ধ ব্যবহারকারীদের জন্য এমন একধরণের বিকল্প বিকল্প সরবরাহ করব যা তাদের পাঠ্যক্রমে আটকাবে না।
এটির মূল্যের জন্য, এখানে আমার অনলাইনার, আপনারা সকলেই এই থ্রেডে কী কথা বলছেন:
<textarea onkeydown="if(event.keyCode===9){var v=this.value,s=this.selectionStart,e=this.selectionEnd;this.value=v.substring(0, s)+'\t'+v.substring(e);this.selectionStart=this.selectionEnd=s+1;return false;}">
</textarea>
ক্রোম, ফায়ারফক্স, ইন্টারনেট এক্সপ্লোরার এবং এজের সর্বশেষতম সংস্করণগুলির পরীক্ষক।
if(event.shiftKey){if(v.substring(s-1,s)==='\t'){this.value=v.substring(0,s-1)+v.substring(e);this.selectionStart=this.selectionEnd=s-1;}}
এখানে এটির আমার সংস্করণটি সমর্থন করে:
$(function() {
var enabled = true;
$("textarea.tabSupport").keydown(function(e) {
// Escape key toggles tab on/off
if (e.keyCode==27)
{
enabled = !enabled;
return false;
}
// Enter Key?
if (e.keyCode === 13 && enabled)
{
// selection?
if (this.selectionStart == this.selectionEnd)
{
// find start of the current line
var sel = this.selectionStart;
var text = $(this).val();
while (sel > 0 && text[sel-1] != '\n')
sel--;
var lineStart = sel;
while (text[sel] == ' ' || text[sel]=='\t')
sel++;
if (sel > lineStart)
{
// Insert carriage return and indented text
document.execCommand('insertText', false, "\n" + text.substr(lineStart, sel-lineStart));
// Scroll caret visible
this.blur();
this.focus();
return false;
}
}
}
// Tab key?
if(e.keyCode === 9 && enabled)
{
// selection?
if (this.selectionStart == this.selectionEnd)
{
// These single character operations are undoable
if (!e.shiftKey)
{
document.execCommand('insertText', false, "\t");
}
else
{
var text = this.value;
if (this.selectionStart > 0 && text[this.selectionStart-1]=='\t')
{
document.execCommand('delete');
}
}
}
else
{
// Block indent/unindent trashes undo stack.
// Select whole lines
var selStart = this.selectionStart;
var selEnd = this.selectionEnd;
var text = $(this).val();
while (selStart > 0 && text[selStart-1] != '\n')
selStart--;
while (selEnd > 0 && text[selEnd-1]!='\n' && selEnd < text.length)
selEnd++;
// Get selected text
var lines = text.substr(selStart, selEnd - selStart).split('\n');
// Insert tabs
for (var i=0; i<lines.length; i++)
{
// Don't indent last line if cursor at start of line
if (i==lines.length-1 && lines[i].length==0)
continue;
// Tab or Shift+Tab?
if (e.shiftKey)
{
if (lines[i].startsWith('\t'))
lines[i] = lines[i].substr(1);
else if (lines[i].startsWith(" "))
lines[i] = lines[i].substr(4);
}
else
lines[i] = "\t" + lines[i];
}
lines = lines.join('\n');
// Update the text area
this.value = text.substr(0, selStart) + lines + text.substr(selEnd);
this.selectionStart = selStart;
this.selectionEnd = selStart + lines.length;
}
return false;
}
enabled = true;
return true;
});
});
textarea
{
width: 100%;
height: 100px;
tab-size: 4;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea class="tabSupport">if (something)
{
// This textarea has "tabSupport" CSS style
// Try using tab key
// Try selecting multiple lines and using tab and shift+tab
// Try pressing enter at end of this line for auto indent
// Use Escape key to toggle tab support on/off
// eg: press Escape then Tab to go to next field
}
</textarea>
<textarea>This text area doesn't have tabSupport class so disabled here</textarea>
আধুনিক উপায় যে উভয় সোজা সম্মুখগামী এবং হারান না পূর্বাবস্থা করার ক্ষমতা করুন (Ctrl + z) গত পরিবর্তন।
$('#your-textarea').keydown(function (e) {
var keyCode = e.keyCode || e.which;
if (keyCode === $.ui.keyCode.TAB) {
e.preventDefault();
const TAB_SIZE = 4;
// The one-liner that does the magic
document.execCommand('insertText', false, ' '.repeat(TAB_SIZE));
}
});
সম্পর্কে আরও execCommand
:
মন্তব্যে উল্লেখ করা হয়েছে (এবং এটি একবার "আধুনিক" সমাধান ছিল ), বৈশিষ্ট্যটি অচল হয়ে গেছে। দস্তাবেজগুলি উদ্ধৃত করা হচ্ছে:
এই বৈশিষ্ট্যটি অপ্রচলিত। যদিও এটি এখনও কিছু ব্রাউজারে কাজ করতে পারে তবে এটি যে কোনও সময় মুছে ফেলা হতে পারে বলে এর ব্যবহারকে নিরুৎসাহিত করা হয়। এটি ব্যবহার এড়াতে চেষ্টা করুন।
indent-textarea
ক্রস-ব্রাউজার সমাধানের জন্য চেষ্টা করুন যা এই পদ্ধতিটি + ফায়ারফক্সে একটি ফ্যালব্যাক ব্যবহার করে।
document.execCommand
কেবল সেটিংস করার পরে সক্ষম হয়ে যায় document.designMode = "on";
। আমি আছে যে উপাদানগুলিতে লিখতে পাঠ্য পেতে সক্ষম .contentEditable = 'true'
। যাইহোক, আমি যখন এটি কোনও টেক্সটরিয়ায় সম্পন্ন করার চেষ্টা করি, সন্নিবেশ করা পাঠ্য নোড ডকুমেন্টের ভিতরে টেক্সটরিয়ার ঠিক আগে (টেক্সারিয়ায় না রেখে) স্থাপন করা হয়। দয়া করে এখানে মজিলাকে চিত্রিত করতে সহায়তা করার চেষ্টা করুন ।
execCommand
): 'এই বৈশিষ্ট্যটি অপ্রচলিত। যদিও এটি এখনও কিছু ব্রাউজারে কাজ করতে পারে তবে এটি যে কোনও সময় মুছে ফেলা হতে পারে বলে এর ব্যবহারকে নিরুৎসাহিত করা হয়। এটি ব্যবহার এড়াতে চেষ্টা করুন। '
অ্যাংুলারজেএস পরিবেশে @ কাশদেগের উত্তরটি ব্যবহার করার চেষ্টা আমি আর কোথাও পাচ্ছিলাম না, যা চেষ্টা করেছি তার কিছুই পরিবর্তন সম্পর্কে কৌণিক অভিনয় করতে সক্ষম বলে মনে হচ্ছে না। সুতরাং এটির দ্বারা যাত্রীদের কোনও কাজে আসার ক্ষেত্রে, এখানে @ কাসেদেগা কোড, অ্যাংুলারজেএস স্টাইলের পুনর্লিখন করা হয়েছে, যা আমার পক্ষে কাজ করেছে:
app.directive('ngAllowTab', function () {
return function (scope, element, attrs) {
element.bind('keydown', function (event) {
if (event.which == 9) {
event.preventDefault();
var start = this.selectionStart;
var end = this.selectionEnd;
element.val(element.val().substring(0, start)
+ '\t' + element.val().substring(end));
this.selectionStart = this.selectionEnd = start + 1;
element.triggerHandler('change');
}
});
};
});
এবং:
<textarea ng-model="mytext" ng-allow-tab></textarea>
element.triggerHandler('change');
, অন্যথায় মডেলটি আপডেট হবে না (কারণ element.triggerHandler('change');
আমি মনে করি।
আপনাকে টিএবি কী টিপতে জেএস কোড লিখতে হবে এবং একগুচ্ছ জায়গা .োকাতে হবে। জেএসফিডাল যা করে তার অনুরূপ কিছু।
জ্যাকুরি ফিডল পরীক্ষা করুন :
এইচটিএমএল :
<textarea id="mybox">this is a test</textarea>
জাভাস্ক্রিপ্ট :
$('#mybox').live('keydown', function(e) {
var keyCode = e.keyCode || e.which;
if (keyCode == 9) {
e.preventDefault();
alert('tab pressed');
}
});
event.preventDefault();
e.keyCode || e.which
।
@ কাসদেগা সমাধানের ভিত্তিতে একাধিক-লাইন ইন্ডেটেশন স্ক্রিপ্ট।
$('textarea').on('keydown', function (e) {
var keyCode = e.keyCode || e.which;
if (keyCode === 9) {
e.preventDefault();
var start = this.selectionStart;
var end = this.selectionEnd;
var val = this.value;
var selected = val.substring(start, end);
var re = /^/gm;
var count = selected.match(re).length;
this.value = val.substring(0, start) + selected.replace(re, '\t') + val.substring(end);
this.selectionStart = start;
this.selectionEnd = end + count;
}
});
start === end
।
এই সমাধানটি আপনার সাধারণ কোড সম্পাদকের মতো একটি সম্পূর্ণ নির্বাচনে ট্যাবিংয়ের অনুমতি দেয় এবং সেই নির্বাচনটিকেও নিষ্ক্রিয় করে রাখে। তবে, যখন কোনও নির্বাচন নেই তখন শিফট-ট্যাব কীভাবে প্রয়োগ করতে হবে তা আমি খুঁজে পাইনি।
$('#txtInput').on('keydown', function(ev) {
var keyCode = ev.keyCode || ev.which;
if (keyCode == 9) {
ev.preventDefault();
var start = this.selectionStart;
var end = this.selectionEnd;
var val = this.value;
var selected = val.substring(start, end);
var re, count;
if(ev.shiftKey) {
re = /^\t/gm;
count = -selected.match(re).length;
this.value = val.substring(0, start) + selected.replace(re, '') + val.substring(end);
// todo: add support for shift-tabbing without a selection
} else {
re = /^/gm;
count = selected.match(re).length;
this.value = val.substring(0, start) + selected.replace(re, '\t') + val.substring(end);
}
if(start === end) {
this.selectionStart = end + count;
} else {
this.selectionStart = start;
}
this.selectionEnd = end + count;
}
});
#txtInput {
font-family: monospace;
width: 100%;
box-sizing: border-box;
height: 200px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id="txtInput">
$(document).ready(function(){
$("#msgid").html("This is Hello World by JQuery");
});
</textarea>
if (selected.length > 0) {...}
ফিডল দিয়ে করেছি: jsfiddle.net/jwfkbjkr
উত্তরের উপরে লোকেরা যা বলতে চেয়েছিল তার উপর ভিত্তি করে এটি কেবল কীডাউন (কীপআপ নয়) এর সংমিশ্রণ + প্রতিরোধ ডিফল্ট () + ক্যারেটে একটি ট্যাব অক্ষর প্রবেশ করান। কিছুটা এইরকম:
var keyCode = e.keyCode || e.which;
if (keyCode == 9) {
e.preventDefault();
insertAtCaret('txt', '\t')
}
পূর্বের উত্তরে একটি কার্যনির্বাহী jsfiddle ছিল তবে এটি কী-ডাউনটিতে একটি সতর্কতা () ব্যবহার করেছে। আপনি যদি এই সতর্কতাটি সরিয়ে ফেলেন তবে তা কার্যকর হয়নি। আমি টেক্সারিয়ায় কার্সারের বর্তমান অবস্থানে একটি ট্যাব সন্নিবেশ করার জন্য একটি ফাংশন যুক্ত করেছি।
এখানে একই কাজের জন্য কাজ করছেন: http://jsfiddle.net/nsHGZ/
আমি দেখছি এই বিষয়টির সমাধান হয়নি। আমি এটিকে কোড করেছিলাম এবং এটি খুব ভালভাবে কাজ করছে। এটি কার্সার সূচীতে একটি সারণী সন্নিবেশ করায়। Jquery ব্যবহার না করে
<textarea id="myArea"></textarea>
<script>
document.getElementById("myArea").addEventListener("keydown",function(event){
if(event.code==="Tab"){
var cIndex=this.selectionStart;
this.value=[this.value.slice(0,cIndex),//Slice at cursor index
"\t", //Add Tab
this.value.slice(cIndex)].join('');//Join with the end
event.stopPropagation();
event.preventDefault(); //Don't quit the area
this.selectionStart=cIndex+1;
this.selectionEnd=cIndex+1; //Keep the cursor in the right index
}
});
</script>
আমি এমন একটি তৈরি করেছি যা আপনার পছন্দ মতো কোনও পাঠ্য উপাদান দিয়ে অ্যাক্সেস করতে পারবেন:
function textControl (element, event)
{
if(event.keyCode==9 || event.which==9)
{
event.preventDefault();
var s = element.selectionStart;
element.value = element.value.substring(0,element.selectionStart) + "\t" + element.value.substring(element.selectionEnd);
element.selectionEnd = s+1;
}
}
এবং উপাদানটি দেখতে এই রকম হবে:
<textarea onkeydown="textControl(this,event)"></textarea>
সহজ উপায় আমি কি করতে সেখানে পাওয়া গেছে আধুনিক ব্রাউজারে সঙ্গে ভ্যানিলা জাভাস্ক্রিপ্ট হল:
<textarea name="codebox"></textarea>
<script>
const codebox = document.querySelector("[name=codebox]")
codebox.addEventListener("keydown", (e) => {
let { keyCode } = e;
let { value, selectionStart, selectionEnd } = codebox;
if (keyCode === 9) { // TAB = 9
e.preventDefault();
codebox.value = value.slice(0, selectionStart) + "\t" + value.slice(selectionEnd);
codebox.setSelectionRange(selectionStart+2, selectionStart+2)
}
});
</script>
নোট করুন যে আমি সরলতার জন্য এই স্নিপেটে অনেকগুলি ES6 বৈশিষ্ট্য ব্যবহার করেছি, আপনি সম্ভবত এটি স্থাপনের আগে এটি (ব্যাবেল বা টাইপস্ক্রিপ্ট সহ) ট্রান্সিলিপ করতে চাইবেন।
উপরের উত্তরগুলি সমস্ত পূর্বাবস্থায় ফেলা ইতিহাস মুছবে। যে সমাধান না করে এমন সমাধানের সন্ধানের জন্য, আমি Chrome এর জন্য নিম্নলিখিত ঘন্টাটি কোড করে শেষ ঘন্টাটি ব্যয় করেছি:
jQuery.fn.enableTabs = function(TAB_TEXT){
// options
if(!TAB_TEXT)TAB_TEXT = '\t';
// text input event for character insertion
function insertText(el, text){
var te = document.createEvent('TextEvent');
te.initTextEvent('textInput', true, true, null, text, 9, "en-US");
el.dispatchEvent(te);
}
// catch tab and filter selection
jQuery(this).keydown(function(e){
if((e.which || e.keyCode)!=9)return true;
e.preventDefault();
var contents = this.value,
sel_start = this.selectionStart,
sel_end = this.selectionEnd,
sel_contents_before = contents.substring(0, sel_start),
first_line_start_search = sel_contents_before.lastIndexOf('\n'),
first_line_start = first_line_start_search==-1 ? 0 : first_line_start_search+1,
tab_sel_contents = contents.substring(first_line_start, sel_end),
tab_sel_contents_find = (e.shiftKey?new RegExp('\n'+TAB_TEXT, 'g'):new RegExp('\n', 'g')),
tab_sel_contents_replace = (e.shiftKey?'\n':'\n'+TAB_TEXT);
tab_sel_contents_replaced = (('\n'+tab_sel_contents)
.replace(tab_sel_contents_find, tab_sel_contents_replace))
.substring(1),
sel_end_new = first_line_start+tab_sel_contents_replaced.length;
this.setSelectionRange(first_line_start, sel_end);
insertText(this, tab_sel_contents_replaced);
this.setSelectionRange(first_line_start, sel_end_new);
});
};
সংক্ষেপে, নির্বাচিত লাইনের শুরুতে ট্যাবগুলি সন্নিবেশ করা হয়।
JSFiddle: http://jsfiddle.net/iausallc/5Lnabspr/11/
সংক্ষিপ্তসার: https://gist.github.com/iautomation/e53647be326cb7d7112d
ব্যবহারের উদাহরণ: $('textarea').enableTabs('\t')
কনস: শুধুমাত্র Chrome এ কাজ করে।
Wjbryant দ্বারা আপনার টেক্সারিয়াসে ট্যাব সমর্থনের জন্য গিথুবতে একটি গ্রন্থাগার রয়েছে: ট্যাব ওভাররাইড
এটা এভাবে কাজ করে:
// get all the textarea elements on the page
var textareas = document.getElementsByTagName('textarea');
// enable Tab Override for all textareas
tabOverride.set(textareas);
উপরের কাসদেগা কোডের বিকল্প হিসাবে, বর্তমান মানটিতে ট্যাব সংযোজন করার পরিবর্তে আপনি বর্তমান কার্সার পয়েন্টে অক্ষরগুলি সন্নিবেশ করতে পারেন। এর সুবিধা রয়েছে:
সুতরাং প্রতিস্থাপন
// set textarea value to: text before caret + tab + text after caret
$(this).val($(this).val().substring(0, start)
+ "\t"
+ $(this).val().substring(end));
সঙ্গে
// set textarea value to: text before caret + tab + text after caret
document.execCommand("insertText", false, ' ');
if (e.which == 9) {
e.preventDefault();
var start = $(this).get(0).selectionStart;
var end = $(this).get(0).selectionEnd;
if (start === end) {
$(this).val($(this).val().substring(0, start)
+ "\t"
+ $(this).val().substring(end));
$(this).get(0).selectionStart =
$(this).get(0).selectionEnd = start + 1;
} else {
var sel = $(this).val().substring(start, end),
find = /\n/g,
count = sel.match(find) ? sel.match(find).length : 0;
$(this).val($(this).val().substring(0, start)
+ "\t"
+ sel.replace(find, "\n\t")
+ $(this).val().substring(end, $(this).val().length));
$(this).get(0).selectionStart =
$(this).get(0).selectionEnd = end+count+1;
}
}
এই সহজ jQuery ফাংশন চেষ্টা করুন:
$.fn.getTab = function () {
this.keydown(function (e) {
if (e.keyCode === 9) {
var val = this.value,
start = this.selectionStart,
end = this.selectionEnd;
this.value = val.substring(0, start) + '\t' + val.substring(end);
this.selectionStart = this.selectionEnd = start + 1;
return false;
}
return true;
});
return this;
};
$("textarea").getTab();
// You can also use $("input").getTab();
একই কাজ করতে আমাকে একটি ফাংশন করতে হয়েছিল, এটি ব্যবহার করা সহজ, কেবল আপনার স্ক্রিপ্টে এই কোডটি অনুলিপি করুন এবং ব্যবহার করুন: enableTab( HTMLElement )
এইচটিএমএল উপাদানটি হ'ল এমন কিছুdocument.getElementById( id )
function enableTab(t){t.onkeydown=function(t){if(9===t.keyCode){var e=this.value,n=this.selectionStart,i=this.selectionEnd;return this.value=e.substring(0,n)+" "+e.substring(i),this.selectionStart=this.selectionEnd=n+1,!1}}}
প্রতিটি ইনপুট একটি টেক্সারিয়ার উপাদানটিতে একটি অনকিডাউন ইভেন্ট থাকে। ইভেন্ট হ্যান্ডলারে আপনি ইভেন্ট.প্রিভেন্টডাফল্ট () ব্যবহার করে ট্যাব কী-এর ডিফল্ট প্রতিক্রিয়াটি প্রতিরোধ করতে পারবেন যখনই ইভেন্ট.কি কোড নয় is।
তারপরে সঠিক অবস্থানে একটি ট্যাব সাইন রাখুন:
function allowTab(input)
{
input.addEventListener("keydown", function(event)
{
if(event.keyCode == 9)
{
event.preventDefault();
var input = event.target;
var str = input.value;
var _selectionStart = input.selectionStart;
var _selectionEnd = input.selectionEnd;
str = str.substring(0, _selectionStart) + "\t" + str.substring(_selectionEnd, str.length);
_selectionStart++;
input.value = str;
input.selectionStart = _selectionStart;
input.selectionEnd = _selectionStart;
}
});
}
window.addEventListener("load", function(event)
{
allowTab(document.querySelector("textarea"));
});
এইচটিএমএল
<textarea></textarea>
$("textarea").keydown(function(event) {
if(event.which===9){
var cIndex=this.selectionStart;
this.value=[this.value.slice(0,cIndex),//Slice at cursor index
"\t", //Add Tab
this.value.slice(cIndex)].join('');//Join with the end
event.stopPropagation();
event.preventDefault(); //Don't quit the area
this.selectionStart=cIndex+1;
this.selectionEnd=cIndex+1; //Keep the cursor in the right index
}
});
সাধারণ স্বতন্ত্র লিপি:
textarea_enable_tab_indent = function(textarea) {
textarea.onkeydown = function(e) {
if (e.keyCode == 9 || e.which == 9){
e.preventDefault();
var oldStart = this.selectionStart;
var before = this.value.substring(0, this.selectionStart);
var selected = this.value.substring(this.selectionStart, this.selectionEnd);
var after = this.value.substring(this.selectionEnd);
this.value = before + " " + selected + after;
this.selectionEnd = oldStart + 4;
}
}
}
আপনার যদি সত্যিই ট্যাবগুলির প্রয়োজন হয় তবে শব্দ বা নোটপ্যাড থেকে কোনও ট্যাব অনুলিপি করুন এবং এটি আপনি চান পাঠ্য বাক্সে পেস্ট করুন
1 2 3
12 22 33
দুর্ভাগ্যক্রমে আমি মনে করি তারা এই মন্তব্যগুলি থেকে ট্যাবগুলি সরিয়েছেন :) এটি আপনার পোষ্ট বা জিইটি-তে% 09 হিসাবে প্রদর্শিত হবে