指定输入的第一个字符

时间:2017-01-06 11:58:47

标签: javascript jquery html

我有一个输入,我希望第一个字符为#。 这意味着如果用户写了某些内容,它会自动添加#,或者更好,#已经存在于输入中。

我该怎么做?我以为我可以使用jQuery面具做到这一点,但我无法使其发挥作用。

5 个答案:

答案 0 :(得分:1)

这是代码,

$("#your-input-id").keypress(function(e) {
    if (e.keyCode != 8) {
        var text = this.value;
        if (text.length == 0) {
            this.value = text + '#';
        }
    }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>

<form action="#">
  <input id="your-input-id"  type="text" placeholder="Type a text here..." data-prefix="#" />
</form>

希望这会奏效。

这将在您开始输入时附加#,并且稍后会将所有内容追加到#

修改

$("#your-input-value").keydown(function(e) {
    var cur_val=$(this).val();
    var field=this;
    setTimeout(function () {
        if(field.value.indexOf('#') !== 0) {
            $(field).val(cur_val);
        } 
    }, 1);
});

答案 1 :(得分:0)

请参阅此解决方案http://codepen.io/bachors/pen/yeJOrg

运行示例以满足您的需求:

/***********************************************
* #### jQuery Prefix Input ####
* Coded by Ican Bachors 2015.
* http://ibacor.com/labs/jquery-prefix-input/
* Updates will be posted to this site.
***********************************************/

$(".yourClass").focus(function(){var a=$(this).data("prefix"),ibacor_currentId=$(this).attr('id'),ibacor_val=$(this).val();if(ibacor_val==''){$(this).val(a)}ibacor_fi(a.replace('ibacorat',''),ibacor_currentId);return false});function ibacor_fi(d,e){$('#'+e).keydown(function(c){setTimeout(function(){var a=bcr_riplis($('#'+e).val()),qq=bcr_riplis(d),ibacor_jumlah=qq.length,ibacor_cek=a.substring(0,ibacor_jumlah);if(a.match(new RegExp(qq))&&ibacor_cek==qq){$('#'+e).val(bcr_unriplis(a))}else{if(c.key=='Control'||c.key=='Backspace'||c.key=='Del'){$('#'+e).val(bcr_unriplis(qq))}else{var b=bcr_unriplis(qq)+c.key;$('#'+e).val(b.replace("undefined",""))}}},50)})}function bcr_riplis(a){var f=['+','$','^','*','?'];var r=['ibacorat','ibacordolar','ibacorhalis','ibacorkali','ibacortanya'];$.each(f,function(i,v){a=a.replace(f[i],r[i])});return a}function bcr_unriplis(a){var f=['+','$','^','*','?'];var r=['ibacorat','ibacordolar','ibacorhalis','ibacorkali','ibacortanya'];$.each(f,function(i,v){a=a.replace(r[i],f[i])});return a}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>

<form action="#">
  <input id="yourInput" class="yourClass" type="text" placeholder="Type a text here..." data-prefix="#" />
</form>

答案 2 :(得分:0)

你可以试试这个,

<强> HTML

<input type="text" class="txtUrl" />

<强>的Javascript

$('.txtContent').keydown(function(e) {
     var cur_val = $(this).val(); 
    if(cur_val.length == 0) {
      $(this).val('#' + cur_val);
    }
});

这是工作小提琴:http://jsfiddle.net/jMH9b/43/

希望这有帮助!

答案 3 :(得分:0)

如你所说,如果已经有 SLASH ,它就不应该做任何事情。这是解决方案

$('#description').bind('input', function(event){
  var currentVal = $(this).val();
  $(this).val(currentVal.indexOf('#') !== 0 ? ('#' + currentVal) : currentVal)
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label name="description">Enter some text</label>
<input type="text" id="description" name="description">

答案 4 :(得分:0)

<input id='e' onKeyup='test(this)' value='#'/>

var input = document.getElementById('e');

function  test(e){
input.value = e.value.charAt(0) !== '#' ? input.value = '#' + e.value : e.value
}

希望这会有所帮助...