Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 指定输入的第一个字符_Javascript_Jquery_Html - Fatal编程技术网

Javascript 指定输入的第一个字符

Javascript 指定输入的第一个字符,javascript,jquery,html,Javascript,Jquery,Html,我有一个输入,希望第一个字符是#。 这意味着如果用户写了什么,它会自动添加,或者更好,输入中已经存在 我该怎么做?我想我可以用jQuerymask来实现这一点,但我无法让它工作。看到这个解决方案了吗 运行示例以满足您的需要: /*********************************************** *#####jQuery前缀输入#### *由Ican Bachors 2015编写。 * http://ibacor.com/labs/jquery-prefix-inpu

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

我该怎么做?我想我可以用
jQuery
mask来实现这一点,但我无法让它工作。

看到这个解决方案了吗

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

/***********************************************
*#####jQuery前缀输入####
*由Ican Bachors 2015编写。
* http://ibacor.com/labs/jquery-prefix-input/
*更新将发布到此网站。
***********************************************/
$(“.yourClass”).focus(function(){var a=$(this.data)(“前缀”),ibacor_currentId=$(this.attr('id'),ibacor_val=$(this.val();if(ibacor_val=''){$(this.val(a)}ibacor_fi a.replace('ibacorat',''),ibacor_currentId);返回false});(c)键下(c)键下(c)键下(c)键下(c)键下(c)键下(c)键下(c)键下(c)键下(c)键下(c)键下(c)键下(c)键下(c)键下(c)键下)键下(c)键下)键下(c)键下(c)的)超时(函数)函数)var a)a)var a=var a=B)Ricrcrrip(c)Rip)Rip(c)Rip(c)Rip(c)Rip((($((((((\35\3535\3535\35; e)e)e)e.e.val.val(),qq(e.val(),qq(e.e.val()),qq=bcr(d(d),qq=R(d)RIC)RIC)Ri| c.key=='Del'{$('#'+e).val(bcr|U unriplis)(QQQQ)))其他(qq)的(qq)的(qq)的(qq)的(qq)的)的(b.替换(b.替换(“未定义的“,,,,)))},50)的)的)的)的)的)功能(b)的)的(c)的)的(c)的)的)功能(c)的(b)的(c)的)的)的)的)的(b)的)的)的(b)的)的)的)的)的)的(b)的(b)的)的)的)的)的)的)的)的(b)的)的)的)的)的)的)的(c)的)的(c)的)的)的)的(c)的)的)的)的)的)的)的)的)的)的)的)的)的)的)的)的)的)的(b)的)的)的)的)的)的)的“+”、“$”、“^”、“*”、“?”];变量r=['ibacorat'、'Ibacordoral'、'ibacorhalis'、'ibacorkali'、'ibacortanya'];$。每个(f,函数(i,v){a=a.replace(r[i],f[i]);返回a}

这是代码

$(“#您的输入id”)。按键(功能(e){
如果(例如,keyCode!=8){
var text=this.value;
如果(text.length==0){
this.value=text+'#';
}
}
});

您可以试试这个

HTML

<input type="text" class="txtUrl" />
这是工作小提琴:


希望这有帮助!

正如您所说的,如果已经有了一个斜杠,它不应该做任何事情。下面是解决方案

$('#description').bind('input',function(event){
var currentVal=$(this.val();
$(this.val(currentVal.indexOf('#')!==0?('#'+currentVal):currentVal)
});

输入一些文本

var input=document.getElementById('e');
功能测试(e){
input.value=e.value.charAt(0)!='#'?input.value='#'+e.value:e.value
}

希望这有帮助…

如果你想在
文本中默认设置
值,你应该像
一样设置
值,但如果他们删除了,你就不能再得到它。我猜你会希望这是十六进制码输入?如果是这样,你还需要将字符限制为6(包括
在内的7个字符)?在输入元素中备注**data prefix=“#”***这与我的答案几乎相同。@VforVendetta Sorry mate!。.我没有注意到..我正忙着起草答案。是的..几乎…不完全这在默认情况下效果很好,但不需要初始的
(例如,输入文本、选择所有文本、输入文本)根据所需的用途,这可能很重要,也可能不重要。使用前缀文本,然后在保存时,只需将#附加到字符串。是的,我只是指出了一个可能的缺陷,以便稍后尝试阻止任何人撞到它。
$('.txtContent').keydown(function(e) {
     var cur_val = $(this).val(); 
    if(cur_val.length == 0) {
      $(this).val('#' + cur_val);
    }
});
<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
}