javascript - examples - jquery remove class
Usar jQuery selector y setSelectionRange no es una funciĆ³n (4)
He montado un jfiddle básico a continuación. Por alguna razón, mi selector trabaja para recuperar el cuadro de área de texto para establecer el valor, pero el selector no funciona para usar la función setSelectionRange. En la consola encontrará un error para .setSelectionRange no es una función.
código (consulte jfiddle): selector.setSelectionRange(carat,carat);
HTML:
<input type="search" value="Potato Pancakes" id="search">
JQUERY:
jQuery.fn.putCursorAtEnd = function() {
return this.each(function() {
$(this).focus()
// If this function exists...
if (this.setSelectionRange) {
// ... then use it (Doesn''t work in IE)
// Double the length because Opera is inconsistent about whether a carriage return is one character or two. Sigh.
var len = $(this).val().length * 2;
this.setSelectionRange(len, len);
} else {
// ... otherwise replace the contents with itself
// (Doesn''t work in Google Chrome)
$(this).val($(this).val());
}
// Scroll to the bottom, in case we''re in a tall textarea
// (Necessary for Firefox and Google Chrome)
this.scrollTop = 999999;
});
};
$("#search").putCursorAtEnd();
Comprobar:
http://css-tricks.com/snippets/jquery/move-cursor-to-end-of-textarea-or-input/
Para mi esta es una buena solución.
selector[0].setSelectionRange(start ,end);
Pero me gustaría añadir una cosa más. Noté que setSelectionRange
es algo que está disponible de forma asíncrona después de que el elemento se enfoca.
var element = selector[0];
element.addEventListener(''focus'', function() {
element.setSelectionRange(start, end);
});
element.focus();
También puedes usar alternativamente:
element.selectionStart = start;
element.selectionEnd = end;
Podrías probar esto que me funciona. Lo uso para construir una dirección de los campos de dirección separados y luego hago la copia para pegar.
El HTML
<div id="d_clip_container" style="position:relative">
(<a href="#" id="d_clip_button">copy to clipboard</a>)
</div>;
<textarea id="clip" rows="0" cols="0" style="border:none;height:0;width:0;"></textarea>
La jQuery
$(document).ready(function() {
$(''#d_clip_button'').click(function() {
//get all the values of needed elements
var fName = $("#firstName").val();
var lName = $("#lastName").val();
var address = $("#Address").val();
var city = $("#City").val();
var state = $("#State").val();
var zip = $("#Zip").val();
//concatenate and set "clip" field with needed content
$(''#clip'').val(fName + " " + lName + "/n" + address + "/n" + city + ", " + state + " " + zip);
//Do it
if(copyToClipboard(''#clip'')) {
alert(''text copied'');
} else {
alert(''copy failed'');
}
});
});
function copyToClipboard(elem) {
// set focus to hidden element and select the content
$(elem).focus();
// select all the text therein
$(elem).select();
var succeed;
try {
succeed = document.execCommand("copy");
} catch(e) {
succeed = false;
}
// clear temporary content
$(target).val('''');
return succeed;
}