getSelection()中的Jquery字符限制;?

时间:2013-06-13 10:16:58

标签: jquery character restriction getselection

我有一个jquery脚本,可以通过点击相应的按钮复制所需字段中的所选文本...现在我需要限制那些输入id不同数量的字符...首先输入最多5个字符,第二个最大值为2,第三个最大值为3 ....我试图用 maxlength =“number”来限制它它用于手动输入或以旧方式复制和粘贴但忽略了按钮上的复制点击...我想这需要解决getSelection();功能?或其他什么?

这是当前的jsfiddle:http://jsfiddle.net/dzorz/ZhN3M/

尝试选择一部分文字,然后点击一个按钮来测试功能

HTML:

<p id="highlighted_text">Aliquam eget ipsum accumsan, convallis nulla sit amet, auctor est. 
Nam quis condimentum eros, vel condimentum lacus. In id enim at sem gravida sodales 
eu vitae risus. Morbi sed mi sit amet lectus rhoncus gravida a sit amet nisl. Phasellus 
quis ultricies leo. Duis vel lobortis mauris. Suspendisse sed diam eu turpis facilisis 
rutrum vitae vitae dolor.</p>
<form id="myform" class="form-horizontal">
</fieldset>
<div class="control-group">
    <input type="text" class="input-small" id="input1"> <a href="#" id="copy1" class="btn btn-primary">Copy to 1</a>

</div>
<div class="control-group">
    <input type="text" class="input-small" id="input2"> <a href="#" id="copy2" class="btn btn-primary">Copy to 2</a>

</div>
<div class="control-group">
    <input type="text" class="input-small" id="input3"> <a href="#" id="copy3" class="btn btn-primary">Copy to 3</a>

</div>
</fieldset>
</form>

脚本:

function getSelectedText() {
if (window.getSelection) {
    return window.getSelection();
} else if (document.selection) {
    return document.selection.createRange().text;
}
return '';
}

$(document).ready(function () {
$('#copy1').click(function () {
    $('#input1').val(getSelectedText());
});
$('#copy2').click(function () {
    $('#input2').val(getSelectedText());
});
$('#copy3').click(function () {
    $('#input3').val(getSelectedText());
});
});

1 个答案:

答案 0 :(得分:2)

不确定我是否得到你所说的但是假设这是你想要的

使用选定的toString方法将所选字符转换为字符串..并使用substring获取前n个字符

$(document).ready(function () {

    $('#copy1').click(function () {
       var selectedText = getSelectedText().toString();
       $('#input1').val(selectedText.substring(0, 5));
    });
    $('#copy2').click(function () {
       var selectedText = getSelectedText().toString();
       $('#input2').val(selectedText.substring(0, 2));
    });
    $('#copy3').click(function () {
      var selectedText = getSelectedText().toString();
      $('#input3').val(selectedText.substring(0, 3));
    });
});

fiddle here